我正在尝试在JavaScript中使用正则表达式来测试表单文本输入的值是否为法国移动电话号码。
法国移动电话号码以
06
或07
开头,后跟8位数字,如:0611223344
或0744332211
。这些数字的国际形式以+33
开头,取代第一个0
,如下所示:+33611223344
或+33744332211
。
我正在使用此RegEx:(\+\b33|\b0)[67][0-9]{8}\b
,它会测试输入是以+336/7还是06/7开头,后跟8位数。
我添加了Word Boundary(\b
),所以像06112233440611223344(两个连接正确的表格)这样的数字不匹配。
此RegEx适用于这些案件:
0611223344 // matches
0744332211 // matches
+33611223344 // matches
+33744332211 // matches
06112233440744332211 // doesn't match
但我仍然遇到这些输入的问题:
+33611223344+33611223344
0611223344 0744332211
0744332211+33611223344
0744332211 +33611223344
他们都匹配...
我尝试以所有可能的方式将^
和$
添加到我的RegEx,但每当我添加其中一个符号时,RegEx就不再有用了。
答案 0 :(得分:1)
您可以使用以下正则表达式匹配所有法语电话号码
^(?:(?:0|\+33)(?:6|7))\d{8}$
如果您想匹配此格式06 21 05 65 48
和+33 6 21 05 65 48
的数字,请使用以下正则表达式
^(?:(?:(?:0|\+33)(?:6|7))\d{8}|0[67](?: \d{2}){4}|\+33 [67](?: \d{2}){4})$
答案 1 :(得分:0)