大家好,
我正在尝试编写一个正则表达式来验证形式为##########(10位数字)的电话号码,即以下情况是有效的:1231231234或1111111111。无效的情况是少于10位数字或多于10位数字的数字字符串。
到目前为止,我所拥有的表达式是这样的:“\d{10}”
不幸的是,它不能正确地验证长度为11位或更长的字符串。
是否有人知道一个正则表达式来实现这个任务?
大家好,
我正在尝试编写一个正则表达式来验证形式为##########(10位数字)的电话号码,即以下情况是有效的:1231231234或1111111111。无效的情况是少于10位数字或多于10位数字的数字字符串。
到目前为止,我所拥有的表达式是这样的:“\d{10}”
不幸的是,它不能正确地验证长度为11位或更长的字符串。
是否有人知道一个正则表达式来实现这个任务?
你需要锚定起始和结束位置
/^\d{10}$/
这个匹配10个数字,不包含任何其他字符。
这个表达式适用于谷歌表单中的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|$)
我添加了使用破折号(xxx-xxx-xxxx)的选项,以便提供更好的用户体验(假设这是您的网站):
var regex = /^\d{3}-?\d{3}-?\d{4}$/g
window.alert(regex.test('1234567890'));
/^\d{10}$/
表达式。 - RobGre.test(s.replace(/[\s-]/g))
,而不是禁止使用它们。 - RobG。
phone_number.match(/^[\(\)\s\-\+\d]{10,17}$/)
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}$/) ;
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');
}