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 />

此正则表达式适用于输入到文本框中的一个十位数字。但是,在文本框中输入超过一个十位数字时会失败。我读过正则表达式需要打开多行。我通过在上面的模型中定义数据类型来做到这一点。所以我不确定我做错了什么。

4

3 回答 3

1

使用 10 位数字,您的意思是这样的:

 1234567890 1234567890 1234567890 1234567890

在这种情况下,您需要一个能够理解这一点的表达式,例如:^\d{10}( \d{10})*$

如果您使用的是多行文本框,例如:^\d{10}(\r?\n\d{10})*$

于 2012-12-04T04:10:00.950 回答
1

不支持 MultiLine 属性..RegularExpressionAttribute您必须自己动手。

这个问题已经在 SO 上被问过了。不要从原作者的代码中删除。这是一个例子:https ://stackoverflow.com/a/9689880/1517578

于 2012-12-03T21:42:56.213 回答
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 回答