2017-04-06 135 views
0

我使用正則表達式來驗證荷蘭的手機號碼:正則表達式荷蘭的手機號碼或國際號碼

^((\+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開始)

是否有人知道如何做到這一點?

+0

即使國際號碼的8-12位數字不能以0開始? – horcrux

+0

您可以通過爲國際製作單獨的正則表達式來處理數據兩次嗎? – brad

+0

我剛剛在這裏分享了荷蘭手機號碼的答案:https://stackoverflow.com/a/46280603/4385010 –

回答

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}$ 

您可以|和荷蘭正則表達式串連它。

請注意,在您的正則表達式中存在拼寫錯誤\\