我正在尝试使用javascript对表单的电话号码字段进行验证。

我从另一个网站上获取了一些RegEx,它几乎可以正常工作。

但是,如果您将字母放在数字之间,例如“ 1234abc5678”,则javascript确实允许表单提交

这是我的验证码:

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个字符之间的电话号码,如果应该输入一个,则也可以在开头加上+。其他任何字符都应无效

最佳答案

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

关于php - regEx允许数字之间的字母,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17189007/

10-11 06:13