-4

この質問がここで何千回も聞かれることは知っていますが、まだコツがつかめません。テキストボックスが電話番号の形式と一致するかどうかを確認する方法について教えてください。形式は次のようになります。

000-000-000または(+000)00-000-000。誰でも私を助けることができますか?

4

3 に答える 3

5

このパターンを試して、

^(\(\+\d{3}\)|\d)\d{2}(-\d{3}){2}$

スクリーンショット:

ここに画像の説明を入力

生成された説明:

  • 行頭の位置をアサートする (文字列の先頭または改行文字の後)^
  • 以下の正規表現に一致し、その一致を後方参照番号 1 にキャプチャします(\(\+\d{3}\)|\d)
    • 以下のいずれかの正規表現に一致します (これが失敗した場合にのみ、次の代替を試みます)\(\+\d{3}\)
      • 文字「(」を文字通り一致させる\(
      • 文字「+」を文字通り一致させる\+
      • 1 桁の 0..9 に一致\d{3}
        • ちょうど3回{3}
      • 文字「)」を文字通り一致させる\)
    • または、以下の正規表現番号 2 に一致します (これが一致しない場合、グループ全体が失敗します)\d
      • 1 桁の 0..9 に一致\d
  • 1 桁の 0..9 に一致\d{2}
    • ちょうど2回{2}
  • 以下の正規表現に一致し、その一致を後方参照番号 2 にキャプチャします(-\d{3}){2}
    • ちょうど2回{2}
    • 注: キャプチャ グループ自体を繰り返しました。グループは最後の反復のみをキャプチャします。繰り返しグループの周りにキャプチャ グループを配置して、すべての反復をキャプチャします。{2}
    • 文字「-」を文字通り一致させる-
    • 1 桁の 0..9 に一致\d{3}
      • ちょうど3回{3}
  • 行末の位置をアサートする (文字列の末尾または改行文字の前)$
于 2013-04-08T08:54:46.957 に答える
1

パターン1は\d{3}\-\d{3}\-\d{3}

パターン2は\(\+\d{3}\)\d{2}\-d{3}\-\d{3}

したがって、パターン 1 またはパターン 2 に一致する必要があります。

(\d{3}\-\d{3}\-\d{3})|(\(\+\d{3}\)\d{2}\-d{3}\-\d{3})
于 2013-04-08T08:56:06.013 に答える
0
(?:\d|\(\+\d{3}\))\d{2}(?:-\d{3}){2}

または、パフォーマンスを考慮している場合は、次のように変更することをお勧めします。

(?:\(\+\d{3}\)|\d)\d{2}(?:-\d{3}){2}
于 2013-04-08T08:54:58.103 に答える