Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在输入框中只输入有效的电话号码?_Javascript - Fatal编程技术网

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

Javascript 如何在输入框中只输入有效的电话号码?,javascript,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 );

我试图在这样的输入框中输入电话号码(例如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>

功能验证(evt){
var theEvent=evt | | window.event;
var key=theEvent.keyCode | | theEvent.which;
key=String.fromCharCode(key);
var regex=/[0-9]\-/;
如果(!正则表达式测试(键)){
theEvent.returnValue=false;
如果(theEvent.preventDefault)theEvent.preventDefault();
}
}

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

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

看看这个:


请尝试:

您愿意在多大程度上验证电话号码?你可以让用户输入一个不正确的号码或多或少有些困难,但最终你将无法完全验证该号码,除非你手动拿起电话并确认每个用户,或者如果它是移动的,则通过一些短信服务确认

如果您试图“帮助”用户,以便他/她知道服务器期望的模式,那么您可以使用三个相邻的输入字段,中间有一个破折号。它可能比添加一些高级事件逻辑来验证用户键入的模式更有用。

试试这个

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

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