在我的自定义验证属性中,我有以下内容:
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="" >
当我在字段中输入时,它总是被激活,无论我输入什么,我都会看到错误信息。我的正则表达式是错误还是还有其他什么在玩?从我在网上看到的,我的正则表达式似乎是正确的
答案 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]+$"