我正在研究验证法国手机号码。我需要法国手机号码的正则表达式,正则表达式验证+(加号), - (破折号)和空格等符号。
我需要验证类似的模式,
+XX XX XX XX XX XX
+XX XX-XX-XX-XX-XX
+XX-XX-XX-XX-XX-XX
+XX.XX.XX.XX.XX.XX
+XX XX.XX.XX.XX.XX
这里X是数字(0到9)
请帮忙。 提前谢谢。
答案 0 :(得分:1)
下面的第一个正则表达式将匹配没有统一数字分隔符的任何变体:这意味着+00 00.00-00.00 00
有效。如果这不是意图,您可以使用下面的第二个或第三个正则表达式。
\+\d{2}(?:[ .-]\d{2}){5}
\+\d{2}(?:(?:-\d{2}){5}|(?:\.\d{2}){5}|(?: \d{2}){5}| \d{2}(?:-\d{2}){4}| \d{2}(?:\.\d{2}){4})
\+\d{2}(?: \d{2}([ .-])\d{2}(?:\1\d{2}){3}|([ .-])\d{2}(?:\2\d{2}){4})
\+
按字面意思匹配+
\d{2}
正好匹配两位数字(?:[ .-]\d{2}){5}
完全匹配以下5次
[ .-]
匹配集合中的任何字符\d{2}
匹配任意数字两次
var t = ['+00 00 00 00 00 00','+00 00-00-00-00-00','+00-00-00-00-00-00','+00.00.00.00.00.00','+00 00.00.00.00.00']
var r = /\+\d{2}(?:[ .-]\d{2}){5}/
t.forEach(function(n){
if(r.test(n)) console.log(n)
})