我需要在輸入時驗證英國電話號碼,並在顯示時以正確的格式顯示。RegEx適用於英國地區代碼。
我已經看到了幾個深不可測的正則表達式例子,但他們沒有得到所有英國數字的正確格式或拒絕一些有效格式(或允許一些無效格式)。
我找到了所需格式的列表,它看起來正確(而且比我最初設想的要複雜得多),但是如何將其變爲「簡單」RegEx模式?
NSN長度:
- 10大多;
- 9對於某些01xxx區域;
- 9對於所有0500,一些0800;
- 7對於兩個特殊的08xx號碼。
格式:
NSN = 10:
- (01xxxx)爲XXXXX
- (01xxx)XXXXXX
- (01x1)XXX XXXX
- (011X)XXX XXXX
- (02x)xxxx xxxx
- 0 3XX XXX XXXX
- 055 XXXX XXXX
- 056 XXXX XXXX
- 070 XXXX XXXX
- 07xxx XXXXXX
- 0800 XXX XXXX
- 山東省實驗中學XXX XXXX
- 09xx XXX XXXX
NSN = 9:
- (016977)XXXX
- (01xxx)爲XXXXX
- 0500 XXXXXX
- 0800 XXXXXX
NSN = 7:
注:
- 01範圍可以具有NSN如10或9
- 0800範圍可以具有NSN爲10,9或7
- 0845範圍可以具有NSN 10或7。