Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使正则表达式在MVC4.0C中为多行文本框工作时遇到问题#_C#_Regex_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

C# 使正则表达式在MVC4.0C中为多行文本框工作时遇到问题#

C# 使正则表达式在MVC4.0C中为多行文本框工作时遇到问题#,c#,regex,asp.net-mvc,asp.net-mvc-4,C#,Regex,Asp.net Mvc,Asp.net Mvc 4,这是我的模型 [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

这是我的模型

    [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 />
@Html.TextAreaFor(model=>model.TenDigitNumbers,new{@class=“MyModel”,@cols=11,@rows=5})
@Html.ValidationMessageFor(model=>model.TenDigitNumbers)

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

RegularExpressionAttribute不支持多行属性。。你得自己滚


这个问题已经被问过了。。不从原作者的代码中删除。。下面是一个例子:

有10位数字,你的意思是这样的:

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


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

这就是使用Regex的方法,基本上不依赖于多行标志或属性,而是显式定义Regex以允许新行,但需要遵循相同的模式

    [RegularExpression(@"^\d{10}(\r?\n\d{10})*$", ErrorMessage = "Please enter a valid 10 digit number.")]
    public string TenDigitNumbers
    {
        get;
        set;
    }

回复:“文本框中输入了一个以上的十位数字”:应该是什么样子?这些数字会用换行符分隔吗?按空格?使用逗号?+1,您不需要在正则表达式中指定Multiline选项。我发现我必须指定[DataType(DataType.multilitext)]