Regex模式无法正常工作.但仅在Extjs/Javascript中
Regex pattern does not work properly.. but only in Extjs / Javascript
我构建了一个正则表达式模式来检查密码的强度:
(?=^.{8,15}$)((?=.*'d)(?=.*[A-Z])(?=.*[a-z])|(?=.*'d)(?=.*[^A-Za-z0-9])(?=.*[a-z])|(?=.*[^A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z])|(?=.*'d)(?=.*[A-Z])(?=.*[^A-Za-z0-9]))^.*
它强制用户使用一个密码,该密码的字符至少来自以下4个类别中的3个:
- 至少1个大写字符
- 至少1个小写字符
- 至少1个数字字符
- 至少1个特殊字符/符号
注意:它还强制执行最小和最大长度{8,15}
该模式在服务器端PHP脚本上运行良好,我还用多个javascript Regex测试工具对其进行了测试(例如。http://www.regular-expressions.info/javascriptexample.html)。到目前为止一切看起来都很完美。。。
但是,如果我在一个简单的Extjs文本字段验证器中使用它,如果我使用所有4个类别,验证器只返回TRUE。
validator: function (value) {
var pattern =
'(?=^.{8,15}$)'+
'((?=.*'d)(?=.*[A-Z])(?=.*[a-z])|' +
'(?=.*'d)(?=.*[^A-Za-z0-9])(?=.*[a-z])|' +
'(?=.*[^A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z])|' +
'(?=.*'d)(?=.*[A-Z])(?=.*[^A-Za-z0-9]))^.*';
if (value.match(pattern)) {
return true;
} else {
return this.i18n.invalidPassword;
}
}
现在,我没有什么想法了。。。
您设置的模式不正确:
var pattern = new RegExp(
'(?=^.{8,15}$)'+
'((?=.*''d)(?=.*[A-Z])(?=.*[a-z])|' +
'(?=.*''d)(?=.*[^A-Za-z0-9])(?=.*[a-z])|' +
'(?=.*[^A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z])|' +
'(?=.*''d)(?=.*[A-Z])(?=.*[^A-Za-z0-9]))^.*'
);
注意''
而不是'
。如果你不这样做,当正则表达式代码到达'
时,它就会消失。你也可以使用原生regex语法,但没有办法将其分解为多行。
编辑—特别是正则表达式中出现'd
之前的''
。如果不将反斜杠加倍,则正则表达式将只显示小写的"d"。
相关文章:
- 最佳javascript/UI框架EXTJS vs HTML 5 vs其他框架
- Javascript-如何将类工厂定义为Extjs风格
- ExtJS 4.1或通用Javascript HTTP_授权函数
- Json Diff Patch Javascript - extjs
- 在一个扩展了Sonata管理twitch/Symfony 2的twitch中调用javascript(ExtJS)的问题
- javascript class ExtJS 子类的名称
- 如何要求 ExtJS 包资源文件夹中的自定义 JavaScript 文件
- 用extjs或javascript将毫秒转换为时间
- 有没有像extjs这样的javascript框架
- JavaScript框架比较:ExtJS、JQWidgets、DHTMLX
- 如何在使用ExtJs时包含外部javascript文件
- Javascript-ExtJs-如何在数据网格中每第n行添加一个自定义行
- Regex模式无法正常工作.但仅在Extjs/Javascript中
- 用于ExtJS和Spring 3.0 MVC的Javascript测试框架
- 使用JavaScript或ExtJS四舍五入格式化的字符串编号
- 如何在JavaScript/extJS中解析带有点的XML标签
- 使用EXTJS, JAVASCRIPT在新选项卡中打开pdf (FireFox和IE 8)
- ExtJs - Javascript -网格中的组合框(单元格编辑插件)-网格/窗口后面的下拉列表
- Extjs - JavaScript - 与模板的组合 - 多个值作为显示字段
- Extjs / Javascript -在函数返回之前等待MessageBox响应