regex — номер совпадения php для первых 2 цифр и длины

Мне нужно проверить в php, если число имеет длину 10 цифр, а первые 2 цифры должны быть 09, и проверить, не осталось ли места тоже, пожалуйста?

пример истинное число = 0912345678

Спасибо
Рамин

-2

Решение

Вы можете сделать это с помощью регулярных выражений, например так:

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.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector