简体   繁体   English

MVC 4 - 正则表达式验证 - 为什么这不起作用?

[英]MVC 4 - Regular Expression Validation - Why is this not working?

I have a field on an MVC 4 View which requires regular expression validation. 我在MVC 4 View上有一个字段,需要正则表达式验证。 I'm trying to limit entry to characters 'A' through 'Z' (case insensitive) only. 我试图限制进入字符'A'到'Z'(不区分大小写)。

My C# property looks as follows: 我的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; }

The generated HTML looks as follows: 生成的HTML如下所示:

    <div class="formEditControl">
        <input Style="width:30px;" data-val="true" data-val-regex="Please enter a character between &#39;A&#39; and &#39;Z&#39;" 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>

But when I execute it, I get the following error on valid data entry: 但是当我执行它时,我在有效数据输入时收到以下错误:

在此输入图像描述

I don't have a great deal of experience with MVC 4 or RegEx, so it's not clear to me why this isn't working. 我对MVC 4或RegEx没有太多经验,所以我不清楚为什么这不起作用。

You're regular expression is only allowing lowercase characters. 你是正则表达式只允许使用小写字符。 Therefore when you input a 'D' it responded with the error. 因此,当您输入“D”时,它会响应错误。 For all letters, case insensitive, your regex should look like this ^[a-zA-Z]*$ . 对于所有字母,不区分大小写,您的正则表达式应该如下所示^[a-zA-Z]*$ Try that and it should work. 试试吧,它应该工作。

你有(/开头,但这会产生分隔符() 。我不确定你是否甚至需要分隔符。删除() 。如果这不起作用,请使用

^[a-zA-Z]+$

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM