MVC5 ModelClientValidationRegexRule 总是失败
MVC5 ModelClientValidationRegexRule always failing
在我的自定义验证属性中,我有以下内容:
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="" >
当我在该字段中键入时,它总是被激活并且无论我键入什么我都会看到错误消息。是我的正则表达式有误还是这里有其他问题?根据我在网上阅读的内容,我的正则表达式似乎是正确的
累积到 this resource,你在 data-val-regex-pattern
中传递的值是一个字符串模式,而不是一个正则表达式对象,它已经被锚定了。
因此,由于您已经向字符 class 添加了小写 ASCII 字母,因此您可以只使用
yield return new ModelClientValidationRegexRule(_invalidCharactersErrorMessage, "[A-Za-z0-9\s]+");
或(因为 ^
和 $
加倍没有害处),您也可以尝试 "^[A-Za-z0-9\s]+$"
在我的自定义验证属性中,我有以下内容:
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="" >
当我在该字段中键入时,它总是被激活并且无论我键入什么我都会看到错误消息。是我的正则表达式有误还是这里有其他问题?根据我在网上阅读的内容,我的正则表达式似乎是正确的
累积到 this resource,你在 data-val-regex-pattern
中传递的值是一个字符串模式,而不是一个正则表达式对象,它已经被锚定了。
因此,由于您已经向字符 class 添加了小写 ASCII 字母,因此您可以只使用
yield return new ModelClientValidationRegexRule(_invalidCharactersErrorMessage, "[A-Za-z0-9\s]+");
或(因为 ^
和 $
加倍没有害处),您也可以尝试 "^[A-Za-z0-9\s]+$"