簡體   English   中英

正則表達我們的電話號碼

[英]regular expression us phone number

我有一個與以下數字匹配的正則表達式。

8702431273

973-882-9444轉6114

1-223-332-2232

但它不匹配。

(+1)623-975-5296

605-367-7321

如何修改它以接受這些。

^(?:1(?:[. -])?)?(?:\((?=\d{3}\)))?([2-9]\d{2})(?:(?<=\(\d{3})\))? ?(?:(?<=\d{3})[.-])?([2-9]\d{2})[. -]?(\d{4})(?: (?i:ext)\.? ?(\d{1,5}))?$

在我看來,你可以在開頭簡單地替換這部分:

^(?:1(?:[. -])?)?

有了這個:

^(?:\(?\+?1\)?(?:[. -])?)?

或者,如果您想嚴格匹配括號:

^(?:(?:\((?=.?1\)))?\+?1\)?(?:[. -])?)?

我會將下一部分合並到你的正則表達式以匹配其他電話:

(?:\(\+\d\)\s)

它表示帶數字的加號。 如果括號內可以有更多數字或者后面有更多空格,請調整它。 最終的正則表達式可能是這樣的。

^(?:(?:1(?:[. -])?)?(?:\((?=\d{3}\)))?|(?:\(\+\d\)\s))?([2-9]\d{2})(?:^(?<=\(\d{3})\))? ?(?:(?<=\d{3})[.-])?([2-9]\d{2})[. -]?(\d{4})(?: (?i:ext)\.? ?(\d{1,5}))?$

我將我改變的部分划分為適應新的電話號碼:

^
  (?:
    (?:1(?:[. -])?)?
    (?:\((?=\d{3}\)))?
      |
    (?:\(\+\d\)\s)
   )?
([2-9]\d{2})(?:^(?<=\(\d{3})\))? ?(?:(?<=\d{3})[.-])?([2-9]\d{2})[. -]?(\d{4})(?: (?i:ext)\.? ?(\d{1,5}))?$

在我的測試中,它適用於您帖子的五部電話。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM