重複の可能性:
電話番号と国コードを照合する正規表現
現在、この正規表現で電話番号を検証/キャプチャしています:^(\+?(?<country>\d{1,3}?) ?)?(\(?0?(?<area>\d{2})\)? ?)?(?<phone>9?\d{4}[-. ]?\d{4})$
88888888
、8888-8888
、8888.8888
、11 8888-8888
、(11) 88888888
、+22 (21) 8888-8888
およびこの形式のすべての組み合わせなどの数字を受け入れます。
問題は、国コードなしで市外局番を渡すと (このように:(11) 8888-8888
または11 8888-8888
または1188888888
) 国番号として市外局番の部分 (11) が取得され、市外局番が空のままになることです。
country + area + phone
ORのようなものをarea + phone
NOTにするにはどうすればよいcountry + phone
ですか? このようなことをしなくても:
^(((\(?0?(?<area>\d{2})\)? ?)?|(\+?(?<country>\d{1,3}?) ?)?(\(?0?(?<area>\d{2})\)? ?)?)(?<phone>9?\d{4}[-. ]?\d{4})$
これは (area+phone|country+area+phone) ですが、area と country の正規表現が 2 回繰り返されます。