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]+$"