PDA

View Full Version : سوال: تشخیص اعداد و حروف



mostafa_shoakry
چهارشنبه 27 دی 1391, 09:55 صبح
سلام
1.من می خوام از طریق php چک کنم ببینم که مقادیری که در text وارد شده عدد هست یا رشته.
مثلا واسه شماره تلفن فقط می خوام که فقط عدد وارد بشه.آیا با php میشه کنترل کرد یا اینکه باید java هم به کار ببرم.؟
2.در مورد تاریخ چطور ؟ می خوام که کنترل کنم که کاربر تاریخ رو به اون صورت که من می خوام وارد کنه ( البته شمسی )
آیا با php می شه یا باید از java استفاده کنم؟:ناراحت:
ممنون از همه

mahdi_1986
چهارشنبه 27 دی 1391, 10:19 صبح
سلام

اصولا هم باید سمت کلاینت چک بشود و هم سمت سرور،

که به نظر من بهترین راه استفاده از Regular Expression است.
مثلا برای شماره تلفن
^\d{7}$ این یعنی هفت رقم عدد باید وارد شود.

Mohsen.
چهارشنبه 27 دی 1391, 10:29 صبح
سلام در PHP با استفاده از تابع is_numeric میشه چک کرد. خودم دارم چند تا تابع برای چک کردن ولید بودن فرم دارم مینویسم. که دیگه راحت باشم. فعلا برای متن و عدد نوشتم.
چیز خاصی نداره.


//Return 0 means No problem
//Return 1 means Length problem
//Return 2 means Problem in exceptions
function v_text($string,$act,$length,$exception=0){
$len=strlen($string);
if(length($string,$act, $length)==1) return 1;
if(is_array($exception)){
$string=str_split($string);
for($i=1;$i<=$len;$i++){
foreach ($exception as $key => $value) {
if($string[$i-1]==$value) return 2;
}
}
}
return 0;
}

//Return 0 means No problem
//Return 1 means Length problem
//Return 2 means No number
function v_number($number,$act,$length){
if(length($number,$act, $length)==1) return 1;
if(!is_numeric($number)) return 2;
return 0;
}

function length($string,$act,$length){
$len=strlen($string);
switch ($act) {
case '>':
if($len < $length) return 1;
break;
case '<':
if($len > $length) return 1;
break;
case '=':
if($len != $length) return 1;
break;
}
return 0;
}


مثال استفاده:


$ecx=array('m','g','|');
echo v_text($name,"=",5,$ecx);
echo v_number($mobile,"=",5);