[英]Trouble getting Regex working for multiline textbox in MVC 4.0 C#
这是我的模特
[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 />
此正则表达式适用于输入文本框的十位数字。 但是,在文本框中输入的数字超过十位数就会失败。 我已经读过正则表达式需要打开多行。 我通过在上面的模型中定义数据类型来做到这一点。 所以我不确定我做错了什么。
RegularExpressionAttribute
不支持MultiLine属性..你必须自己动手。
这个问题已经在SO上被问过了......不要带走原作者的代码..这里有一个例子: https : //stackoverflow.com/a/9689880/1517578
有10位数字,你的意思是这样的:
1234567890 1234567890 1234567890 1234567890
在这种情况下,您需要一个能够理解的表达式,例如: ^\\d{10}( \\d{10})*$
如果您使用多行文本框,例如: ^\\d{10}(\\r?\\n\\d{10})*$
这就是你如何使用Regex,基本上不依赖于多行标志或属性,而是明确定义正则表达式以允许新行,但需要遵循相同的模式
[RegularExpression(@"^\d{10}(\r?\n\d{10})*$", ErrorMessage = "Please enter a valid 10 digit number.")]
public string TenDigitNumbers
{
get;
set;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.