我在MVC 4 View上有一个字段,需要正则表达式验证。我试图限制进入字符'A'到'Z'(不区分大小写)。
我的C#属性如下所示:
/// <summary>
/// Gets or sets the Revision property
/// </summary>
[DataMember]
[Required]
[RegularExpression("(/^[a-z]+$/i)", ErrorMessage = "Please enter a character between 'A' and 'Z'")]
public string Revision { get; set; }
生成的HTML如下所示:
<div class="formEditControl">
<input Style="width:30px;" data-val="true" data-val-regex="Please enter a character between 'A' and 'Z'" data-val-regex-pattern="(/^[a-z]+$/i)" data-val-required="The Revision field is required." id="Revision" name="Revision" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="Revision" data-valmsg-replace="true"></span>
</div>
但是当我执行它时,我在有效数据输入时收到以下错误:
我对MVC 4或RegEx没有太多经验,所以我不清楚为什么这不起作用。
答案 0 :(得分:1)
你的正则表达式只允许使用小写字符。因此,当您输入“D”时,它会响应错误。对于所有字母,不区分大小写,您的正则表达式应该如下^[a-zA-Z]*$
。试试吧,它应该有用。
答案 1 :(得分:1)
您开始使用(/
,但这会产生分隔符()
。我不确定你是否甚至需要分隔符。移除(
和)
。如果这不起作用,请使用
^[a-zA-Z]+$