我很难让正则表达式与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中,正则表达式有什么不同吗?
答案 0 :(得分:1)
也许这有效:
RegularExpression(@"^.{8,}$")
希望这会有所帮助。干杯