7

重複の可能性:
電話番号検証のための包括的な正規表現
有効な国際電話番号と一致する正規表現は?

電話番号に一致する正規表現に関する StackOverflow の投稿を見たことがあります。しかし、読みやすさを向上させるために、多くの場合、可能なスペースや数字の間の破線が考慮されていないようです。

私はオランダ出身ですが、外国の電話番号を含め、どの電話番号にも一致する正規表現を使用したいと考えています。

ブラウザ用の Skype 検索置換プラグインなどのプラグインに使用したいと考えています。

現在、次の正規表現を使用しています。

^((\+)?)([\s-.\(\)]*\d{1}){8,13}$

誰かがそれを改善しましたか?

4

1 に答える 1

8

私は一緒に行きます

# countryCode
(?:\+\d{1,3}|0\d{1,3}|00\d{1,2})

# actual number
(?:[-\/\s.]|\d)+

# combined with optional country code and parantheses in between
 ^(?:\+\d{1,3}|0\d{1,3}|00\d{1,2})?(?:\s?\(\d+\))?(?:[-\/\s.]|\d)+$

これは、電話番号のほとんどのヨーロッパおよび米国の表現と一致するのに十分なはずです。

+49 123 999
0001 123.456
+31 (0) 8123

ただし、一般に、電話番号のテキスト表現が重複しているため、国ごとに1つの正規表現を使用することはできません。すべての表現を一致させることができれば、多くの誤検知が発生します。スイスでの数字は、ロシア、ドイツ、ガーナでは他の数字かもしれません。正確さと想起のバランスを取り、本当に必要な国に正規表現を最適化することがすべてです。

于 2012-12-05T14:39:45.573 に答える