2011-12-09 9 views
0

次の番号に一致する正規表現があります。正規表現私たちの電話番号

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}))?$ 
+3

正規表現の質問に使用する言語を知ることは、常に役立ちます。 – gpojd

+0

'/ [^ 0-9x] /'を '' "' 'に置き換えて、' x'に文字列を分割する方が良いでしょう。最初の部分は10〜11文字でなければなりません。もし存在すれば拡張部分は2番目の部分になります。 – zzzzBov

+0

@zzzzBov - 検証が行われている場合、または他のテキストに埋め込まれている電話番号を検索している場合は機能しません。 –

答えて

1

あなたは、単に最初にこの部品を交換することができますようにそれは私になります

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

それとも、括弧のマッチングに関する厳格になりたい場合:これで

^(?: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}))?$ 

それはあなたのポストの5回の電話で動作します。

関連する問題