我尝试使用javascript对表单的电话号码字段进行一些验证。
我从其他网站上获得了一些RegEx,它几乎可以运作。
但是javascript确实允许表单提交,如果你在数字之间放置字母,如“1234abc5678”
这是我的验证码:
if (telephone==null || telephone=="")
{
alert("Telephone must be filled out");
return false;
}
var regexp = telephone.replace(/^[\s()+-]*([0-9][\s()+-]*){6,20}$/);
if (telephone.match(regexp))
{
alert("Telephone number is not valid");
return false;
}
有人可以帮我解决这个问题并告诉我出了什么问题
经过1次测试后,我发现如果我在开头添加+,它会允许数字内的字母。我确实需要在开始时允许+但显然不是字母。
我所需的输出是针对6到20个字符长度的电话号码,如果应该输入一个字符,那么在开始时也允许输入+。任何其他字符都应无效
答案 0 :(得分:2)
replace
没有按照您的想法行事。只需使用
var regexp = /^[\s()+-]*([0-9][\s()+-]*){6,20}$/;
你应该没事......
答案 1 :(得分:2)
你为什么打电话给String#replace
?您只需要像这样致电String#match(re)
:
var regex = /^[\s()+-]*([0-9][\s()+-]*){6,20}$/;
if (telephone.match(regex))
console.log("Telephone number is valid");
else
console.log("Telephone number is not valid");
答案 2 :(得分:2)
使用JavaScript验证电话号码
var s ="123456";
var filternumber = /^([0-9]+)$/;
if((filternumber.test(s)==false)){
alert ("not valid number");
}else {
alert ("valid number");
}
答案 3 :(得分:2)
if (telephone==null || telephone=="") {
alert("Telephone must be filled out");
return false;
}
var regexp = /^[\s()+-]*([0-9][\s()+-]*){6,20}$/;
if (! telephone.match(regexp)) {
alert("Telephone number is not valid");
return false;
}
答案 4 :(得分:0)
你需要测试
var regexp = telephone.replace(/^+?\d{6,20}$/);
if (!regexp.test(telephone)) {
alert("Telephone number is not valid");
return false;
}