【发布时间】:2014-09-04 09:05:54
【问题描述】:
我正在尝试在 JavaScript 中使用正则表达式来测试表单文本输入的值是否是法国手机号码。
法国手机号码以
06或07开头,后跟8 位数字,例如:0611223344或0744332211。这些数字的国际形式以+33开头,它替换了第一个0,例如:+33611223344或+33744332211。
我正在使用这个正则表达式:(\+\b33|\b0)[67][0-9]{8}\b,它测试输入是否以 +336/7 或 06/7 开头,后跟 8 位数字。
我添加了单词边界 (\b),因此 06112233440611223344(两个连接的正确形式)之类的数字不匹配。
这个正则表达式适用于这些情况:
0611223344 // matches
0744332211 // matches
+33611223344 // matches
+33744332211 // matches
06112233440744332211 // doesn't match
但我仍然遇到这些输入的问题:
+33611223344+33611223344
0611223344 0744332211
0744332211+33611223344
0744332211 +33611223344
它们都匹配...
我尝试以所有可能的方式将^ 和$ 添加到我的RegEx,但每当我添加其中一个符号时,RegEx 就不再起作用了。
【问题讨论】:
标签: javascript regex phone-number exact-match