4

重複の可能性:
米国の電話番号の確認

米国の電話番号を確認する必要があります。次の形式である可能性があります。

xxx-xxx-xxxx
(xxx) xxx xxxx
(xxx)-xxx-xxxx
xxxxxxxxxx

しかし、それはすべきではありません

xxx-xxx-xxxx-
-xxx-xxx-xxxx

数字、ハイフン、スペース、および括弧を受け入れる必要があります。

現在使用しています

^\[0-9 \-\. ]+$ 

これは、最初または最後のダッシュを検証しません。

4

5 に答える 5

6
^\(?\d{3}\)?[- ]?\d{3}[- ]?\d{4}$
于 2012-08-23T22:58:56.720 に答える
4

さて、私の考えは(いくつかの検索の後)まったく新しいものではありません!これを見てください:

電話番号検証のための包括的な正規表現

これは優れた提案です。

于 2012-08-23T23:07:14.180 に答える
2

これはおそらく正しいです(使用している正規表現エンジンに応じていくつかの解析エラーを想定しています。地獄のように醜いです:(。

(?:\d{3}(?:\d{7}|\-\d{3}\-\d{4}))|(?:\(\d{3}\)(?:\-\d{3}\-)|(?: \d{3} )\d{4})
于 2012-08-23T23:05:29.493 に答える
2
(^\(?[0-9]{3}\)?\-?\s?[0-9]{3}\-?\s?[0-9]{4}[^-])

これをhttp://regexhero.net/tester/でテストし、次のパターンを選択するようにしました。

xxx-xxx-xxxx 
(xxx) xxx xxxx 
(xxx)-xxx-xxxx
xxxxxxxxxx

次のパターンを無視しました。

xxx-xxx-xxxx- 
-xxx-xxx-xxxx

これがお役に立てば幸いです。少なくとも、正しい方向に進むことができます。

于 2012-08-23T23:33:36.143 に答える
0

これでうまくいくはずです:

/^([\d]{6}|((\([\d]{3}\)|[\d]{3})( [\d]{3} |-[\d]{3}-)))[\d]{4}$/
  • 最初の6桁がxxxxxx、であるかどうかを確認することから始まります。
  • そうでない場合は、最初の3桁(xxx)xxx
    • そして、それらの1つが、次の3つがまたはであるかどうかをチェックしますxxx-xxx-
  • 最後に、末尾に4桁あることを確認しますxxxx
于 2012-08-23T23:13:47.553 に答える