我正在使用带有非常复杂的正则表达式的 ASP 的 RegularExpressionValidator。这个已经很好用了:
(?=^.{10,}$)(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[+#<>;.,:|\\-@*!\"§$%&/()=?`´]).*$
但是我必须扩展它以添加检查当前用户名是否是密码的一部分(不区分大小写)。
例如用户名为 Meier 用户不得创建密码
i012k34KmeIer567+
所以我将表达式更改为
(?=^.{10,}$)(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[+#<>;.,:|\\-@*!\"§$%&/()=?`´])(?i)(?!.*meier)(?-i).*$
并将其添加到asp:RegularExpressionValidator
as ValidationExpression
。
不幸的是,这样做时,我在添加密码时在浏览器中出现错误:
"SyntaxError: invalid quantifier"
浏览器显示的有问题的代码是:
function RegularExpressionValidatorEvaluateIsValid(val) {
var value = ValidatorGetValue(val.controltovalidate);
if (ValidatorTrim(value).length == 0)
return true;
**var rx = new RegExp(val.validationexpression);**
var matches = rx.exec(value);
return (matches != null && value == matches[0]);
}
带有 的行"**"
是有问题的行。
我也试过了RegEx.IsMatch
,但是我的正则表达式在那里工作。有谁知道我该如何解决这个问题,或者谁能告诉我我做错了什么?
非常欢迎任何帮助!:) 请不要犹豫,问我是否描述得不够好。