Мне нужно проверить в php, если число имеет длину 10 цифр, а первые 2 цифры должны быть 09, и проверить, не осталось ли места тоже, пожалуйста?
пример истинное число = 0912345678
Спасибо
Рамин
Вы можете сделать это с помощью регулярных выражений, например так:
function checkNumber($number) {
return !!preg_match('/^09\d{8}$/', "$number");
}
Или с простым сопоставлением строк:
function checkNumber($number) {
$number = trim("$number");
if (strlen($number) != 10)
return false;
if (substr($number, 0, 2) != "09")
return false;
return trim($number, "0..9") == "";
}
Оба метода дают одинаковый вывод:
var_dump([$number = '0912345678', checkNumber($number)]);
var_dump([$number = '9012345678', checkNumber($number)]);
var_dump([$number = '091234567', checkNumber($number)]);
var_dump([$number = '09123456788', checkNumber($number)]);
// array(2) {
// [0]=>
// string(10) "0912345678"// [1]=>
// bool(true)
// }
// array(2) {
// [0]=>
// string(10) "9012345678"// [1]=>
// bool(false)
// }
// array(2) {
// [0]=>
// string(9) "091234567"// [1]=>
// bool(false)
// }
// array(2) {
// [0]=>
// string(11) "09123456788"// [1]=>
// bool(false)
// }
Кроме того, подход регулярных выражений является более простым и гибким, imho.
Других решений пока нет …