1

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

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="" >

当我在字段中输入时,它总是被激活,无论我输入什么,我都会看到错误消息。我的正则表达式是错误的还是这里有其他东西在起作用?从我在网上阅读的内容来看,我的正则表达式似乎是正确的

4

1 回答 1

1

会计。对于这个资源,你传入的值data-val-regex-pattern是一个字符串模式,而不是一个正则表达式对象,它已经被锚定了。

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

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

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

于 2016-05-01T20:37:30.900 回答