MVC5 ModelClientValidationRegexRule总是失败

时间:2016-05-01 20:20:23

标签: c# jquery regex asp.net-mvc-5 validationattribute

在我的自定义验证属性中,我有以下内容:

yield return new ModelClientValidationRegexRule(_invalidCharactersErrorMessage, "/^[A-Za-z0-9\\s]+$/i");

假设只接受字母,数字和空格。现在在HTML方面,这是生成的内容:

<input data-val="true" data-val-regex="Only letters, numbers, and spaces are allowed" data-val-regex-pattern="/^[A-Za-z0-9\s]+$/i" data-val-required="Alias is required" id="Alias" name="Alias" placeholder="Alias" type="text" value="" >

当我在字段中输入时,它总是被激活,无论我输入什么,我都会看到错误信息。我的正则表达式是错误还是还有其他什么在玩?从我在网上看到的,我的正则表达式似乎是正确的

1 个答案:

答案 0 :(得分:1)

度Acc。到this resource,你在data-val-regex-pattern内传递的值是一个字符串模式,而不是正则表达式对象,它已经被锚定。

因此,由于您已经在字符类中添加了小写ASCII字母,因此可以使用

yield return new ModelClientValidationRegexRule(_invalidCharactersErrorMessage, "[A-Za-z0-9\\s]+");

或(因为加倍^$没有任何伤害),您也可以尝试"^[A-Za-z0-9\\s]+$"