法国手机号码的正则表达式验证(+, - 和""(空白spance")

时间:2018-02-15 14:23:00

标签: javascript regex

我正在研究验证法国手机号码。我需要法国手机号码的正则表达式,正则表达式验证+(加号), - (破折号)和空格等符号。

我需要验证类似的模式,

 +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)

请帮忙。 提前谢谢。

1 个答案:

答案 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)
})