2017-08-16 15 views
2

私は正規表現で電話番号を検証するためのソリューションの多くを参照してください...しかし、私は、例えば+31(0)12としての私の電話番号での一部の文字が欲しいです。正規表現でプラス(+)記号と "(0)"で電話番号を検証する方法は?

あなたは値+31(0)12-1234567を持つ文字列を持っている場合。これは、電話番号の正しい記法です。どのように正規表現を使用して検証することができますか?

私はこれを試してみました:

Regex phonePattern = new Regex(@"\+\d{3}?(\0)\d*\-\d*"); 

私が間違って何?

その他の例は次のとおりです。 +31(0)6-12345678または+31(0)123-123456

+0

(0)もあなたの答えには重要です... – user1531040

答えて

6

私もこの問題を持っていた電話番号であることに加えて+記号と番号を正規表現するためにSO上でここに重複は認められませんでした。

Regex phonePattern = new Regex(@"\s*(?:\+?(\d{1,3}))?([-. (]*(\d{3})[-.)]*)?((\d{3})[-. ]*(\d{2,4})(?:[-.x ]*(\d+))?)\s*"); 

See it here on regex 101

これは一致します。:+ \ D {1,3}(:

+nnnnnnnnnn 
+nnn-nnn-nn 
nnnnnnnnnnn 
nnnn-nnnn-n 
(nnn)nnnnnn 
+(nnn)nnnnn 
+0

これがコンテンツに含まれているかどうかをテストします:(0)? – user1531040

+0

スペースがある場合、これは機能しますか? –

0

が、それはこのようなものでなければなりません

は、最後に私は、これは自分自身を正規表現にフォーマット0)\ d * - \ d *

あなたの例では、ゼロと国コードの括弧をエスケープしていません1〜3桁の長さにすることができます。

+1

@ "+ \ d {1,3}(0)\ d * - \ d *"これはエラーメッセージを出します。あなたは\で始める必要があると思います。 – user1531040

関連する問題