1

指定した電話番号が有効かどうかを確認するために、ASP.NET Web サイト用の正規表現ベースの属性を作成したいと考えています。次のようなパターンを通過する必要があります。

+3630 1234 567

06 30 1234 567

0630 1234 567

061 123 456

06 1 123 456

したがって、最も重要なことは、最初の文字を「+」にすることができるということですが、これは要件ではなく、その後は数字と空白のみです。

次のことを試しましたが、うまくいきません。

public class PhoneNumberAttribute : RegularExpressionAttribute
{
    public PhoneNumberAttribute()
        :base(@"^\+?[0-9 ]")
    { }
}
4

2 に答える 2

3

あなたの正規表現は現在、文字列の先頭にオプションの+記号を受け入れますが (これは今のところ問題ありません)、数字またはスペースは 1 つだけです。より多くの数字/スペースを許可する必要があり、これを行うには、数量詞を追加します。ここで使用するのに適したものは、+1 つ以上を意味する数量詞です。

^\+?[0-9 ]+

現在、他の文字も受け入れるため、行末アンカーも追加して、正規表現が文字列全体をチェックするようにします。

^\+?[0-9 ]+$

それはそれを行う必要があります。ただし、さらに規則がある場合 (連続したスペースを入れない、桁数を制限するなど)、正規表現を修正する必要があります。

于 2013-09-07T15:25:41.967 に答える
0

libphonenumber を試すことができます - https://github.com/erezak/libphonenumber-csharp

于 2013-09-09T03:19:20.900 に答える