如何在输入框中仅输入有效的电话号码?

时间:2012-03-24 09:52:02

标签: javascript

我想在这样的输入框中输入一个电话号码(例如111-222-3333)

所以我使用这段代码:

<script type="text/javascript">
    function validate(evt) {
      var theEvent = evt || window.event;
      var key = theEvent.keyCode || theEvent.which;
      key = String.fromCharCode( key );
      var regex = /[0-9]|\-/;
      if( !regex.test(key) ) {
        theEvent.returnValue = false;
        if(theEvent.preventDefault) theEvent.preventDefault();
     }
    }
</script>

我现在只能使用整数(0-9)和' - '输入电话号码,但问题是用户也可以在连字符( - )后输入另一个连字符( - )。 或者用户可以输入不是电话格式的号码

请帮助我,我真的需要这个..谢谢:)

3 个答案:

答案 0 :(得分:0)

看看这个:http://dev.w3.org/html5/markup/input.tel.html

尝试:<input type="tel">

答案 1 :(得分:0)

您愿意在多大程度上验证电话号码?您可以或多或少地让用户输入错误的号码,但最终您将永远无法完全验证号码,除非您手动拿起电话并确认每个用户或通过某些短信服务确认它只是移动设备。

如果您正在尝试“帮助”用户,以便他/她知道服务器期望的模式,您可以使用三个输入字段彼此相邻并在其间使用短划线。它可能比添加一些高级事件逻辑更有用,它可以在用户输入时验证模式。

答案 2 :(得分:0)

试试这个

/^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/

将支持

  • (111)-222-3333
  • 111-222-3333
  • 111222-3333
  • 111222333