正则表达式验证法国手机号码

时间:2017-09-09 18:46:02

标签: regex

我试图验证法国手机号码: 我已经删除了所有非数字字符和最后的00,规则是:

  

从06或07或09开始   是10位数长:

因此:

/^0(6|7|9)\d{8}$/

但(似乎)如果国家代码(33)存在,则必须避免前导零,但此时我无法创建正确的正则表达式,因为使用数字:

  

33614444444

/^(33|0)?(6|7|9)\d{8}$/

它有效,但也适用于

  

614444444

虽然它不应该

可以建议解决方案吗?

2 个答案:

答案 0 :(得分:2)

为什么不简单地使用/^(33|0)(6|7|9)\d{8}$/

我认为您不需要量词?

?之后添加(33|0)。它意味着它们中没有一个存在或330中的一个存在。它将匹配以下所有内容 -

614444444 // none present
0614444444 // 0 present
33614444444 // 33 present

答案 1 :(得分:2)

你可以使用正则表达式

^(33|0)(6|7|9)\d{8}$

请参阅regex101 demo