也许宽容的JavaScript解决方案只能确保只允许有效字符。 (数字,破折号,句号,延伸字母。
尽管循环似乎最好,是否有一个简单的正则表达式来检查有效字符?
答案 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,''));
}
但这些不允许延期。如果提供格式,则正则表达式部分很容易。