ASP.NET正则表达式验证程序(密码强度)
ASP.NET Regular Expression Validator (Password Strength)
我有一个验证控件,它有以下表达式:
(?=(.*''d.*){2,})(?=(.*''w.*){2,})(?=(.*''W.*){1,}).{8,}
这是一个密码,至少有2位、两个字母字符,1个非字母数字和至少8个字符 这种验证在Firefox中非常有效,但在Internet Explorer中则不然。 每个答案的组合结果为: 重要的部分是长度的第一个具有(?.{x,})。var format = "^(?=.{" + minLength + ",})" +
(minAlpha > 0 ? "(?=(.*[A-Za-z].*){" + minAlpha + ",})" : "") +
(minNum > 0 ? "(?=(.*[0-9].*){" + minNum + ",})" : "") +
(minNonAlpha > 0 ? "(?=(.*''W.*){" + minNonAlpha + ",})" : "") + ".*$";
EX: "^(?=.{x,})(?=(.*[A-Za-z].*){y,})(?=(.*[0-9].*){z,})(?=(.*'W.*){a,}).*$"
(?=(.*'W.*){0,})
不是0个非字母数字字符。它是至少0个非字母数字字符。如果您希望密码不包含任何非字母数字字符,则可以使用(?!.*'W)
或(?='w*$)
。
一个更简单的解决方案是跳过'W
展望,使用'w{8,}
而不是.{8,}
。
此外,'w
包括'd
。如果你只想要阿尔法,你可以做[^'W'd]
或[A-Za-z]
。
/^(?=(?:.*?'d){2})(?=(?:.*?[A-Za-z]){2})'w{8,}$/
这将验证密码是否至少包含两个数字、二个字母,至少有8个字符长以及仅包含字母数字字符(包括下划线)。
'w
=[A-Za-z0-9_]
'd
=[0-9]
's
=[ 't'n'r'f'v]
编辑:要在所有浏览器中使用它,你可能需要做这样的事情:
var re = new RegExp("^(?=(?:.*?''d){2})(?=(?:.*?[A-Za-z]){2})''w{8,}$");
if (re.test(password)) { /* ok */ }
第2版:问题的最新更新几乎使我的全部答案无效。^^;;
如果将模式替换为原来的模式,那么最终您应该仍然能够使用JavaScript代码。
第三版:好的。现在我明白你的意思了。
/^(?=.*[a-z].*[a-z])(?=.*[0-9].*[0-9]).{3,}/.test("password123") // matches
/^(?=.*[a-z].*[a-z])(?=.*[0-9].*[0-9]).{4,}/.test("password123") // does not match
/^(?=.*[a-z].*[a-z]).{4,}/.test("password123") // matches
看起来(?= )
在InternetExplorer中并不是真正的零宽度。
http://development.thatoneplace.net/2008/05/bug-discovered-in-internet-explorer-7.html
第4版:更多阅读:http://blog.stevenlevithan.com/archives/regex-lookahead-bug
我认为这可以解决你的问题:
/^(?=.{8,}$)(?=(?:.*?'d){2})(?=(?:.*?[A-Za-z]){2})(?=(?:.*?'W){1})/
new RegExp("^(?=.{8,}$)(?=(?:.*?''d){2})(?=(?:.*?[A-Za-z]){2})(?=(?:.*?''W){1})")
(?=.{8,}$)
需要放在第一位。
这将为您提供2分钟的数字、2分钟的字符和至少8个字符的长度。。。我拒绝向您展示如何不允许用户在密码中包含非字母数字字符,为什么网站要强制使用不太安全的密码?
^(?=.*'d{2})(?=.*[a-zA-Z]{2}).{8,}$
一个现有的基于jQuery的密码强度验证器怎么样?比如:http://scripts.simplythebest.net/4/Ajax-Password-Strength-Meter-software.html
- 如何使用url加载程序在webpack中导入多个图像
- keyup事件处理程序更改焦点不适用于快速键入
- 用程序搜索JQuery数据表中的文本
- 一个密码测试程序,如果存在空格,它会提醒用户
- AngularJs Cordova安卓应用程序中输入的4位密码PIN验证
- 正确传输和保护用户'web应用程序的密码
- 应该如何将密码从纯html/javascript应用程序发送到php页面
- Cordova的Firebase/Phonegap:使用应用程序内的电子邮件/密码登录
- Nodejitsu:有没有一种方法可以对应用程序进行密码保护
- 以编程方式将密码从 Chrome 密码管理器导入 Chrome 扩展程序
- 如何在javascript中创建受密码保护的应用程序
- 节点邮件程序和节点中的密码问题
- HTML单页应用程序,用浏览器填写用户名和密码
- 在客户端JavaScript中存储Web应用程序的用户密码 - 这是安全的吗?
- 如何从我的web应用程序中的Java脚本文件中获得加密的密码
- 如何为Parse上托管的Parse应用程序添加自定义密码重置模板
- 我如何保护mysql密码在一个phoneGap应用程序
- 如何在你的应用程序上有一个不需要密码就能打开的小部件
- javascript输入另一个程序要求的密码
- ASP.NET正则表达式验证程序(密码强度)