Javascript 如何在输入框中只输入有效的电话号码?
我试图在这样的输入框中输入电话号码(例如111-222-3333) 所以我使用这个代码: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 );
<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