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

How can i input only valid telephone number in input box?

本文关键字:输入 有效 电话号码      更新时间:2023-09-26

我正试图在这样的输入框中输入电话号码(例如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)和"-"输入电话号码,但问题是用户也可以在连字符(‐)后面键入另一个连字符(−)。或者用户可以键入非电话格式的号码

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

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

尝试:<input type="tel">

您愿意在多大程度上验证电话号码?你可以让用户或多或少地难以输入错误的号码,但最终你将永远无法完全验证该号码,除非你手动拿起电话确认每个用户,或者通过一些短信服务确认(如果只是手机)。

如果你试图"帮助"用户,让他/她知道服务器期望的模式,你可以使用三个相邻的输入字段,中间有一个短划线。它可能比添加一些高级事件逻辑更有用,这些逻辑可以根据用户类型验证模式。

试试这个

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

将支持

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