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)
// }

此外,恕我直言,正则表达式方法更简单灵活。