JavaScript中,正则表达式来验证电话号码
我要验证电话号码,格式为XXXX-XXX-XXXXJavaScript中,正则表达式来验证电话号码
var phone= prompt("Enter phonenumber in the format X-XXX-XXX-XXXX");
var regEx= /\d-[\ddd\-]{2}\d{4}/;
if(regEx.test(phone))
{document.write("Is valid PhoneNumber "+phone);}
else{
var msg= "Chaphert 6 exmaple 2a says <br/>" +phone +" is invalid";
alert(msg);
}
我可以用regEx=/\d-\d{3}-\d{3}-\d{4}
,这将解决我的问题,但因为我有重复这个xxx-xxx-
,即我不希望在正则表达式中重复两次\d{3}-
,期望用\ d {3} - \ d {3}替代某些东西,例如[\ d {3} - ] {2} 。我将不胜感激任何帮助。
感谢您的帮助,我需要进行分组 即
var phone= prompt("Enter phonenumber in the format X-XXX-XXX-XXXX");
var regEx= /\d-(\d{3}\-){2}\d{4}/;
if(regEx.test(phone))
{alert("Is valid PhoneNumber "+phone);}
else{
var msg= "Entered phone number " +phone +" is invalid";
alert(msg);
}
解决我的问题替换[]与(),它的工作如预期的那样
这个正则表达式的工作原理,但它隐藏了1-3-3-4结构。 – 2016-07-31 14:40:37
是的,但那是什么问题? –
如果你想显示的1-3-3-4结构的模式,并要防止使用
'-\d{3}'
两次,你可以把这部分放到一个组中并重复两次。
最终模式应该是这样的,那么:
'^\d-(\d{3}-){2}\d{4}$'
感谢它的工作我是混合两种语言分组的Java和JavaScript – Manoj
'^ \ d( - \ d {3}){3} \ d $'? –
什么是'[\ ddd \ - ]'应该是什么意思?您是否在正则表达式测试网站上查看此正则表达式?你知道'[]'(字符集)和'()'组之间的区别吗?无论如何,你的原始正则表达式更清晰,没有理由进一步摆弄它。 – 2016-07-31 14:38:09
为什么你不想重复'\ d {3}'?这就清楚了你实际想要匹配的底层结构是什么。它更易于阅读和维护。 – 2016-07-31 14:57:26