无法验证字符串中的数字

时间:2014-02-07 15:12:24

标签: php preg-match

我需要检查一个字符串

  • 仅包含数字和
  • 第一个数字是0,
  • 整个字符串至少有8位数,最多25位

我试过这个,但它不起作用:

if (!preg_match('/^[0][0-9]\d{8-25}$/', $ut_tel))

3 个答案:

答案 0 :(得分:5)

试试这个正则表达式:

/^0\d{7,24}$/

似乎有效here

答案 1 :(得分:1)

使用此正则表达式

^(0[0-9]{7,24})$

Demo

答案 2 :(得分:1)

如果我是你,我会分别进行每项检查。这样,如果您决定删除其中一个或添加其他检查,将来不会出现问题。

请注意所有潜在的downvoters:我意识到要求采用正则表达式方式的问题,但由于已经在其他答案中提供过 - 我认为有一个不同的方法作为答案是好的同样。)

function validateNumber($number){
    if(!is_numeric($number))
        return false;
    if(strlen($number)>25 || strlen($number)<8)
        return false;
    if(substr($number, 0, 1) != 0)
        return false;

    return true;
}

var_dump(validateNumber('0234567')); // shorter than 8
var_dump(validateNumber('02345678')); // valid
var_dump(validateNumber('12345678')); // doesn't start with 0
var_dump(validateNumber('02345678901234567890123456')); // longer than 25