有没有一种简单的方法可以使用FILTER_SANITIZE_NUMBER_INT验证电话号码?

我正在尝试使用PHP验证电话号码,并且想知道是否有一种方法可以用FILTER_SANITIZE_NUMBER_INT而不是正则表达式来完成。


我需要密码来强制执行xxx-xxx-xxxx格式(允许使用“-”),最大长度为12个字符。


到目前为止,这是我的代码。这项工作是否可以验证xxx-xxx-xxxx格式的任何数字?


$phone = clean_input($_POST["phone"]);

if (empty($phone)) {

    $phoneErr = "Valid phone number required";

    $isValid = false;

} else {

    if (!filter_var($phone, FILTERSANITIZE_NUMBER_INT)) ;

    $phone_to_check = str_replace("-", "", $filtered_phone_number);

    if (strlen($phone_to_check) < 10 || strlen($phone_to_check) > 12) {

        $isValid = false;

    }

}


侃侃无极
浏览 124回答 2
2回答

慕哥6287543

我会用它preg_match代替,因为您可以在一份声明中满足您的所有需求。此正则表达式确保该值必须具有10位数字,并且-在第三和第六位数字之后是可选的。$phone = clean_input($_POST["phone"]);$isValid = preg_match('/^\d{3}-?\d{3}-?\d{4}$/', $phone);
打开App,查看更多内容
随时随地看视频慕课网APP