1

国ごとに電話番号を検証するために正規表現を実行しようとしています。国ごとに電話フォーマットを行います。これには次が含まれます。

  • 検証正規表現 (例: ^(\+33|0)([1-9][0-9]{8})$))
  • 国際番号を取得するための変換 (例: +33$2)
  • 国番号を取得するための変換 (例: 0$2)

イタリアについては、ややこしくなってきています。

ほとんどの電話番号は次のように機能します: "+39 123456789" => " 0 123456789"

しかし、モバイルの場合は次のようになります: "+39 3 123456789" => " 3 123456789"

つまり、国の電話番号を取得するには、携帯電話番号を除いて 0 を追加する必要があります。

これまでのところ、携帯電話用とその他の電話用の 2 つの電話フォーマットを用意することによってのみ実現できました。それらは相互に排他的です。

モバイル =>

  • 検証正規表現:^(\+393|3)([0-9]{9})$
  • 国際番号を取得するための変換:+393$2
  • 国内番号を取得するための変換:3$2

その他 =>

  • 検証正規表現:^(\+39|0)([0-9]{9})$
  • 国際番号を取得するための変換:+39$2
  • 国内番号を取得するための変換:0$2

一度に行う方法はありますか?

電話のサンプル:

  • 0123456789
  • +39123456789
  • 3123456789
  • +393123456789
4

1 に答える 1

0

式を合成します。

^(\+393|3|\+39|0)([0-9]{9})$

条件付き置換は、番号がモバイルかどうかを指定する bool メンバー変数を持つコードで行う必要があります$1

于 2013-08-21T10:05:49.270 に答える