正则表达式不适用于jQuery验证

时间:2014-01-05 17:34:25

标签: c# javascript jquery regex validation

我很难让正则表达式与jQuery Validation一起使用。假设我采用一个简单的正则表达式,至少需要8个字符才能匹配:

(?=.{8,})

如果将其插入JavaScript-based regular expression tester,它可以正常工作。 8个或更多字符匹配,7个或更少不匹配。

此外,如果我在C#中测试它也可以:

        var regex = new Regex(@"(?=.{8,})");
        if (regex.IsMatch(myInput))
        {
            // Hits this code when myInput >= 8 characters
        }

接下来,我在视图模型中使用ValidationAttribute来发出jQuery Validation,以确保用户的输入与表达式匹配:

    [RegularExpression(@"(?=.{8,})", ErrorMessage="Does not match.")]
    public string MyInput { get; set; }

此时,它崩溃了。无论我在场上输入什么都不匹配。发出的HTML如下:

    <input data-val="true" data-val-regex="Does not match." 
            data-val-regex-pattern="(?=.{8,})"  id="MyInput" name="MyInput"
            type="text" value="" />

我尝试过不同的正则表达式,但无济于事。在我忽略的jQuery Validation中,正则表达式有什么不同吗?

1 个答案:

答案 0 :(得分:1)

也许这有效:

RegularExpression(@"^.{8,}$")

希望这会有所帮助。干杯