可能是一个简单的问题,但我找不到适合这段代码的答案:(
我需要验证电话号码是否只有11位数字(无字母)
function validateForm3() {
var x=document.forms["booking"]["number"].value;
if (x==null || x=="")
{
alert("Please fill in 11 numbers");
return false;
}
var x=document.forms["booking"]["email"].value;
if (x.indexOf("@")=== -1)
{
alert("Please enter a valid email");
return false;
}
}
我无法真正改变这种结构,所以它需要适应这段代码:(任何建议或答案都非常明确:)
答案 0 :(得分:8)
使用regexp.test
:
if (! /^[0-9]{11}$/.test(x)) {
alert("Please input exactly 11 numbers!");
return false;
}
请注意,您有意排除了许多电话号码,包括国际电话号码或您可以覆盖的电话号码的替代写作方式。你应该只测试/^\+?[0-9]+$/
。
答案 1 :(得分:1)
if (!/^\d{11}$/.test(x))
alert('These are not 11 digits!');
else
alert('Passed!');
答案 2 :(得分:1)
使用正则表达式:
"1234".match(/^\d{4}$/);
说明:
^ - matches the beginning of the string
\d - matches one digit
{4} - tells that we want four digits (you want thirteen then)
$ - matches the end of the string
有关详细信息,请参阅https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions。
答案 3 :(得分:0)
您可以使用正则表达式:
var str = '12345678900';
if (str.match(/^\d{11}$/)) {
// Valid
}
答案 4 :(得分:0)
可能是这样的:
if (x.length == 11 && +x == x)
答案 5 :(得分:0)
if(x.length==11)
{
for (var i=0; i<x.length; i++)
{
if (parseInt(x[i])!=x[i])
{
alert("only enter numbers!");
}
}
}
else
{
alert("must enter 11 digits!");
}
答案 6 :(得分:0)
您可以使用正则表达式:
\d{11}
但是,您可能还想删除空格:
var isElevenNumbers = (/^\d{11}$/m.test(mynumber.replace(/\s]/g, '')));
您可能想要删除更多的国际号码,例如+ 1-234-567-9090
var isElevenNumbers = (/^\d{11}$/m.test(mynumber.replace(/[\s\+\-]/g, '')));
其中'mynumber'是保存值的变量。
答案 7 :(得分:0)
Steven Levithan在Regexps上有一个非常有用的摘录,可以在http://blog.stevenlevithan.com/archives/validate-phone-number验证北美和国际电话号码。
该页面摘自他的书正则表达手册(O'Reilly,2009)