国際電話番号を扱う必要がありますが、電話機を特定の形式にする必要はありません。私はそれを米国、スペインなどに適用する方法について数多くの例を見つけましたが、00または+で数字を入力することはできませんが、空白やダッシュや空白やダッシュは使用できません。国際電話番号の有効性確認RegEx
私はasp.net MVC 5アプリケーションで電話番号フィールドに適用され、次の式持って:それで
[RegularExpression(@"^\+?\d*$", ErrorMessage = "Not a valid Telephone number.")]
が立って、それが次のシナリオを処理します。
+19999999999
0019999999999
これは問題ありませんが、スペースやダッシュは許可されていませんので、このような番号は
+ 1 999 999 99 99
+32 999-999-99-99
+7 999 999-99-99
有効とはみなされません。
どのようにスペースやダッシュを含めることができますか。具体的には、それを確保することができる:
- のみ1スペースまたは数字
- 間の1つのダッシュにスペース又は全くダッシュ(現在のシナリオ)
- のみ1 +用いる符号があることを確認しないが許可されています
- 数字が10文字以上20文字未満であることを確認してください。
1.は、あまりにも複雑であるあなただけの任意の特定のルールなしにスペースおよび/またはダッシュを許可する方法を教えてくださいすることができますので、このような多数の場合:-33-999 999 + 99から99、ながら完全に間違っていても有効です。
おかげ
^- \ d * - \ d * \ s \ d * \ + \ d * - \ d * $ regxは-33-999の999 + 99-99 – mlkptl35
正しい方向と速い短期集中コース!私は本当にRegExを一回使用する方法を学ぶ必要があります。非常に便利ですが、同時に完全な痛みです! – Thierry
があれば、国際電話番号の解析、書式設定、検証のためにこのGoogleの共通ライブラリをチェックアウトしてください。 https://github.com/googlei18n/libphonenumber – mlkptl35