PHP正则表达式无法正常工作

时间:2014-11-12 18:22:11

标签: php regex

所以我试图用xxx-xxx-xxxx格式验证电话号码,其中x是一个数字。 我遇到的问题是我可以为最后一组数字输入4位以上的数字。有谁看到我做错了什么?感谢。

    $telNumPattern = '/[0-9]{3}-[0-9]{3}-[0-9]{4}/'; //regular expression to match xxx-xxx-xxxx
    if(empty($_POST['telNum'])) {
        $errors['telNum'] = "*Your telephone number can't be empty";
    }
    else if(!preg_match($telNumPattern, $_POST['telNum'])) {
        $errors['telNum'] = "*Your email must be in the form xxx-xxx-xxxx";
    }

2 个答案:

答案 0 :(得分:4)

$telNumPattern = '/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/';

使用锚点进行精确匹配。

答案 1 :(得分:2)

尝试使用它:

$telNumPattern = '/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/'; //regular expression to match xxx-xxx-xxxx
    if(empty($_POST['telNum'])) {
        $errors['telNum'] = "*Your telephone number can't be empty";
    }
    else if(!preg_match($telNumPattern, $_POST['telNum'])) {
        $errors['telNum'] = "*Your email must be in the form xxx-xxx-xxxx";
    }