PHP正则表达式工作不正常

PHP正则表达式工作不正常,php,regex,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 teleph

所以我试图用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";
    }
使用锚定进行精确匹配。

尝试以下操作:


使用字符串的开始/结束标记:/^…$/这样模式就不允许在字符串的开始/结束处有额外的内容。@MarcB我觉得应该有一个规范的答案,我们可以用它来回答这类问题。@NiettheDarkAbsol:你可以用社区wiki的答案开始一个问题,成为锤子时间的目标。@MarcB
$telNumPattern = '/^[0-9]{3}-[0-9]{3}-[0-9]{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";
    }