[Required(ErrorMessage = "Field is needed")]
[RegularExpression(@"^[0-9]+$", ErrorMessage = "Can only be 9 characters long")]
[Display(Name = "Number")]
public string Number { get; set; }
这就是我所拥有的。我确定这个数字只能有9个字符,但我也希望它不接受不以1或2开头的数字。
因此,如果有人试图创建一个333333333帐户,它就不会让他。我该怎么办?
这是视图
<div class="editor-label">
@Html.LabelFor(u => u.Number)
</div>
<div class="editor-field">
@Html.TextBoxFor(u => u.Number)
@Html.ValidationMessageFor(u => u.Number)
</div>
答案 0 :(得分:1)
你的正则表达式应该是这样的:
^[12]{1}\d{8}$
要显示多个错误,您可以将其与其他验证规则(例如Range或StringLength)结合使用,但我不确定优先顺序。
[Required(ErrorMessage = "Field is needed")]
[Range(100000000,299999999, ErrorMessage="Must be 9 characters and start with 1 or 2")]
[RegularExpression(@"^[1-2][0-9]{0,8}$", ErrorMessage = "Can only be 9 characters long and start with 1 or 2")]
[Display(Name = "Number")]
public string Number { get; set; }
答案 1 :(得分:0)
这是正则表达式,您只需要允许9个数字,第一个必须是1或2
^[1-2][0-9]{0,8}$
所以你的财产将是
[Required(ErrorMessage = "Field is needed")]
[RegularExpression(@"^[1-2][0-9]{0,8}$", ErrorMessage = "Can only be 9 characters long")]
[Display(Name = "Number")]
public string Number { get; set; }
注意:您的正则表达式可以让您拥有超过9个数字。
我使用Debuggex检查我的正则表达式,看到你的解释 https://www.debuggex.com/r/O0hseHDUms5Fhh0u
答案 2 :(得分:0)
您可以输入范围属性 [Range(1,Int32.MaxValue)]
你可以把自定义范围..例如范围到29999999 ..你可以把 [范围(1,299999999)] .. 这将满足您的要求,即数字仅以1和2开头。