电话验证无法正常运行

时间:2015-09-27 08:27:08

标签: javascript php html

我使用此代码验证电话号码:

<script>
$("#Phone").keydown(function (e) {
      // Allow: backspace, delete, tab, escape, enter and .

      if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
        // Allow: Ctrl+A
        (e.keyCode == 65 && e.ctrlKey === true) ||
        // Allow: home, end, left, right, down, up
        (e.keyCode >= 35 && e.keyCode <= 40)) {



        // let it happen, don't do anything
        return;
      }
      // Ensure that it is a number and stop the keypress
      if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
        e.preventDefault();
      }
    });


        var val = Phone.value
if (/^\d{11}$/.test(val)) {
    // value is ok, use it
} else {
    alert("Invalid number; must be eleven digits")
    Phone.focus()
    return false
}
</script>

我希望用户只输入11位数字,如果没有,则会提醒用户他们必须输入11位数字并将值设置为空。

问题是,当它警告该数字小于11位时,它不会将该值设置为空。

2 个答案:

答案 0 :(得分:0)

我知道你要求一个JS解决方案,但这可以通过html5中的新属性来完成

<input type="tel" pattern="[0-9]{11}" placeholder="Your 11 digit phone number..." required/>

在这里小提琴:https://jsfiddle.net/7owhrssr/

答案 1 :(得分:0)

此代码可以帮助您,因为您可能遇到正则表达式的问题

$pref = 'P';

$testArray = array("apple", "ant", "book", "bag");

extract($testArray, EXTR_PREFIX_INVALID, $pref);

var_dump($P_1); // ant