的JavaScript验证电话号码使用正则表达式
问候overflowers,的JavaScript验证电话号码使用正则表达式
我想写一个正则表达式来验证表单的电话号码##########(10位) 即这是这些情况是有效的:1231231234或1111111111.无效的情况将是小于10位或超过10位数字的字符串。
是我到目前为止的表现是这样的: “\ d {10}”
不幸的是,它并没有正确地验证字符串是否11+位数。
有没有人知道一个表达来实现这个任务?
您需要锚定的开始和结束也
/^\d{10}$/
这10个数字,并没有别的比赛。
感谢您的回复。这工作。 – 2013-04-11 00:01:44
我包括选项使用破折号(XXX-XXX-XXXX)为更好的用户体验(假设这是你的网站):
var regex = /^\d{3}-?\d{3}-?\d{4}$/g
window.alert(regex.test('1234567890'));
或者这(这将删除从字符串非数字字符)
var phoneNumber = "(07) 1234-5678";
phoneNumber = phoneNumber.replace(/\D/g,'');
if (phoneNumber.length == 10) {
alert(phoneNumber + ' contains 10 digits');
}
else {
alert(phoneNumber + ' does not contain 10 digits');
}
这为谷歌形式10位的电话号码等下面表达式工作:
(123)123 1234或123-123-1234或123123124
(\W|^)[(]{0,1}\d{3}[)]{0,1}[\s-]{0,1}\d{3}[\s-]{0,1}\d{4}(\W|$)
我通常使用
phone_number.match(/^[\(\)\s\-\+\d]{10,17}$/)
为了能够交流以格式12345678,1234-5678,+12345-678-93或(61)8383-3939检查电话号码,对于在世界各地输入电话号码的人没有真正的约定。因此,如果你不需要验证每个国家的电话号码,这应该主要工作。 17的限制在于阻止人们输入两个无用的连字符和字符。
除此之外,你可以删除所有的空格,连字符和加号,并计数字符,以确保它是10或更多。
var pureNumber = phone_number.replace(/\D/g, "");
完整的解决方案是组合两个
var pureNumber = phone_number.replace(/\D/g, "");
var isValid = pureNumber.length >= 10 && phone_number.match(/^[\(\)\s\-\+\d]{10,17}$/) ;
[请](http://*.com/questions/8760070/jquery-phone-number-format)[搜索]( http://*.com/questions/2386054/javascript-phone-number-validation)[问](http://*.com/questions/5286046/javascript-phone-number-validation)[之前] //www.w3resource.com/javascript/form/phone-no-validation.php)。 – sachleen 2013-04-10 23:58:47