regEx允许数字之间的字母

时间:2013-06-19 10:34:25

标签: php javascript regex validation

我尝试使用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个字符长度的电话号码,如果应该输入一个字符,那么在开始时也允许输入+。任何其他字符都应无效

5 个答案:

答案 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");

现场演示:http://ideone.com/urCGLV

答案 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;
}