我需要检查一个字符串
我试过这个,但它不起作用:
if (!preg_match('/^[0][0-9]\d{8-25}$/', $ut_tel))
答案 0 :(得分:5)
答案 1 :(得分:1)
答案 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