正则表达式荷兰手机号码或国际号码

时间:2017-04-06 14:49:45

标签: regex

我使用正则表达式验证荷兰手机号码:

^((\+316|06|00316){1}\\s?-?\s?[1-9]{1}[0-9]{7})$

所以这个数字应该从06或+316或00316开始,然后是8位数字(不是以0开头)

现在我必须扩展验证,以便它允许来自荷兰以外的国际号码。

我想保持简单,所以我在想:

如果它不以06或+316或00316开头,那么它应该以'00dd'或'+ dd'开头,其中dd!= 31后跟8到12位。

所以0032127384562应匹配,但00317198765432不匹配(因为它以0031但不是00316开头)

有人知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

国际号码的正则表达式是:

^00(?!31)[0-9]{2}\s?-?\s?[1-9][0-9]{7,11}$

或者,如果你不能使用前瞻:

^00([0-24-9][0-9]|3[02-9])\s?-?\s?[1-9][0-9]{7,11}$

您可以将其与|和荷兰正则表达式连接起来。

请注意,\\的正则表达式中存在拼写错误。