php 匹配前 2 位数字和长度的数字
php match number for first 2 digits and length
我需要检查 php 如果号码有 10 位长度并且前 2 位数字需要是 09 并且检查没有 space 吗?
样本真实数 = 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)
// }
此外,恕我直言,正则表达式方法更简单灵活。
我需要检查 php 如果号码有 10 位长度并且前 2 位数字需要是 09 并且检查没有 space 吗?
样本真实数 = 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)
// }
此外,恕我直言,正则表达式方法更简单灵活。