0

これが私のモデルです

    [Required(ErrorMessage = "At least one 10 digit number is required.")]
    [DataType(DataType.MultilineText)]
    [RegularExpression(@"^\d{10}$", ErrorMessage = "Please enter a valid 10 digit number.")]
    public string TenDigitNumbers
    {
        get;
        set;
    }

これが私の見解です

        @Html.TextAreaFor(model => Model.TenDigitNumbers, new { @class = "MyModel", @cols = 11, @rows = 5 })
        @Html.ValidationMessageFor(model => Model.TenDigitNumbers)<br />

この正規表現は、テキストボックスに入力された10桁の数字に対して機能します。ただし、テキストボックスに入力された10桁を超える数字では失敗します。正規表現で複数行をオンにする必要があることを読みました。上記のモデルでデータ型を定義することで、これを実現しました。だから私は自分が何を間違っているのかわかりません。

4

3 に答える 3

1

RegularExpressionAttributeMultiLineプロパティをサポートしていません。独自にロールする必要があります。

この質問はすでにSOで尋ねられています..元の作者のコードを削除しないでください..ここに例があります:https ://stackoverflow.com/a/9689880/1517578

于 2012-12-03T21:42:56.213 に答える
1

10桁の数字で、次のような意味ですか。

 1234567890 1234567890 1234567890 1234567890

その場合、それを理解する式が必要です。たとえば、次のようになります。^\d{10}( \d{10})*$

複数行のテキストボックスを使用している場合は、次のようになります。^\d{10}(\r?\n\d{10})*$

于 2012-12-04T04:10:00.950 に答える
0

これは、基本的に複数行のフラグや属性に依存せずに、正規表現でそれを行う方法です。代わりに、新しい行を許可するように正規表現を明示的に定義しますが、同じパターンに従う必要があります

    [RegularExpression(@"^\d{10}(\r?\n\d{10})*$", ErrorMessage = "Please enter a valid 10 digit number.")]
    public string TenDigitNumbers
    {
        get;
        set;
    }
于 2012-12-04T05:13:08.953 に答える