对美国电话号码进行宽松的JavaScript验证并允许扩展(允许使用jquery)

时间:2011-06-01 12:33:09

标签: javascript jquery regex

  

可能重复:
  A comprehensive regex for phone number validation

也许宽容的JavaScript解决方案只能确保只允许有效字符。 (数字,破折号,句号,延伸字母。

尽管循环似乎最好,是否有一个简单的正则表达式来检查有效字符?

2 个答案:

答案 0 :(得分:1)

你的正则表达式:\d|\.|\-

虽然从技术上讲你需要相反的[^\d\.\-],所以你可以做一个替换 - > <>;

$('input').blur(function() {

   var value = $(this).val();
   $(this).val(value.replace(/[^\d\.\-]/g, ''));

});

请参阅行动中的小提琴 - http://jsfiddle.net/GspT4/

答案 1 :(得分:0)

正则表达式只是javascript,而不是jQuery。你寻求的格式是什么?扩展名中允许多少封信?我可以look it up,但如果你这样做会有很大帮助。似乎允许7到11位数字。

很高兴允许用户输入3或4个字符的电话号码,因为它们更容易阅读,例如:

914-499-1900

914 499 1900

或类似的。如果您愿意,可以修剪空间以进行验证或存储。

完全符合上述格式:

function testPhoneNumber(phoneNumber) {
  var re = /^\d{3}[- ]?\d{3}[- ]?\d{4}$/;
  return re.test(phoneNumber);
}

或者你可以删除不必要但允许的字符并测试剩下的字符:

function testPhoneNumber(phoneNumber) {
  var re = /^\d{10}$/;
  return re.test(phoneNumber.replace(/[ -+]/g,''));
}

但这些不允许延期。如果提供格式,则正则表达式部分很容易。