【发布时间】:2014-01-05 17:34:25
【问题描述】:
我很难让正则表达式与 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 中的正则表达式有什么不同吗?
【问题讨论】:
标签: c# javascript jquery regex validation