一文详解密码的正则表达式写法(密码正则表达包含三种以上符号)一看就会

随心笔谈2年前发布 编辑
158 0
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买



目录密码的正则表达式如何来写?最佳解决思路次佳解决思路第三种解决思路第四种思路第五种思路第六种思路第七种思路第八种思路第九种思路第十种思路

正则表达式:密码必须至少包含八个字符、至少包含一个数字、小写和大写的字母以及特殊字符

我需要一个正则表达式来检查密码:

密码至少包含八个字符、至少包含一个数字、同时包含小写字母和大写字母以及特殊字符,例如,,)

不能是旧密码或包含用户名,或

这里是我的验证表达式,用于限制:八个字符,包括一个大写字母,一个小写字母和一个数字或特殊字符。

(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$”

那么,如何写一个正则,限制密码必须是八个字符,包括一个大写字母,一个特殊字符和字母数字字符?

至少八个字符,至少一个字母和一个数字:

“^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$”

至少八个字符,至少一个字母,一个数字和一个特殊字符:

“^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$”

最少八个字符,至少一个大写字母,一个小写字母和一个数字:

“^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$”

至少八个字符,至少一个大写字母,一个小写字母,一个数字和一个特殊字符:

“^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}”

最少八个最多十个字符,至少一个大写字母,一个小写字母,一个数字和一个特殊字符:

“^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,10}”

可以使用这个正则表达式:

^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$

这个正则表达式将强制执行这些规则:

至少一个大写字母English letter,

至少一个小写英文字母,

至少有一位数字,

至少有一个特殊字符,

最小八个长度(带锚)

正则表达式没有AND运算符,所以编写匹配有效的密码的正则表达式相当困难,特别是当有效性被某些东西别的东西等定义时…

但是,正则表达式确实有一个OR运算符,所以只需应用DeMorgan的定理,并编写一个与无效密码相匹配的正则表达式:

任何少于八个字符或任何没有数字或任何没有大写字母或任何没有小写字母或任何没有特殊字符的任何字符串。

所以:

^(.{0,7}|[^0-9]*|[^A-Z]*|[^a-z]*|[a-zA-Z0-9]*)$

如果能匹配上这个正则表达式的话,这是一个无效的密码。

对最佳答案的一个小小的改进:由于特殊字符仅限于键盘中的特殊字符,因此可用于表达任何特殊字符:

^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,}$

这个正则表达式将强制执行这些规则:

至少一个大写英文字母

至少一个小写英文字母

至少一位数字

至少一个特殊字符

最少八个字符

在我的环境中,按照最佳答案来做,我遇到了一些困难。例如,对字符如或验证失败。我不想白名单列举我的特殊字符,所以我用作为测试 – 只是放置匹配非字符(包括数字)和非空格字符。总而言之,这个做法对我来说比较有效…

至少字符

至少数字字符

至少小写字母

至少大写字母

至少特殊字符

/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$/

导入JavaScript文件。

就可以使用如下方法:

$.validator.addMethod(“pwcheck”, function (value) {
return /[\@\#\$\%\^\&\* \_\+\!]/.test(value) && /[a-z]/.test(value) && /[0-9]/.test(value) && /[A-Z]/.test(value)
});

这个正则表达式可以表达:

至少一张大写英文字母

至少一个小写英文字母

至少一位数字

至少一个特殊字符

满足如下条件:

最少六个字符

至少有一个大写字符

至少一个小写字符

至少一个特殊字符

正则表达式:

“/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&.])[A-Za-z\d$@$!%*?&.]{6, 20}/”

满足如下条件,且有可选特殊字符:

至少一个特殊字符

至少一个数字

特殊字符是可选的

最少6个字符,最多16个字符

正则表达式:

“/^(?=.*\d)(?=.*[a-zA-Z]).{6,20}$/”

如果不需要最小和最大条件,可以删除

6是最小字符数限制

20是最大字符限制

?=表示匹配表达式

需要满足的条件,以及对应的正则表达式:

Conditions: 1] Min 1 uppercase letter.
2] Min 1 lowercase letter.
3] Min 1 special character.
4] Min 1 number.
5] Min 8 characters.
6] Max 30 characters.
Regex: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[#$@!%&*?])[A-Za-z\d#$@!%&*?]{8,30}$/

根据你的需要,下面这个正则表达式应该能正常工作的:

^(?=(.*\d){1})(.*\S)(?=.*[a-zA-Z\S])[0-9a-zA-Z\S]{8,}

只需创建一个字符串变量,分配模式,并创建一个布尔方法,如果模式匹配正确则返回true,否则返回false。

示例:

String pattern=”^(?=(.*\d){1})(.*\S)(?=.*[a-zA-Z\S])[0-9a-zA-Z\S]{8,}”;
String password_string=”Type the password here”
private boolean isValidPassword(String password_string) {
return password_string.matches(Constants.passwordPattern);
}

试试这个正则表达式:

^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])[a-zA-Z0-9@#$%^&+=]*$

这个正则表达式对我来说非常完美。

function myFunction() {
var str=”c1TTTTaTTT@”;
var patt=new RegExp(“^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])[a-zA-Z0-9@#$%^&+=]*$”);
var res=patt.test(str);
console.log(“Is regular matches:”, res);
}

以上就是一文详解密码的正则表达式写法的详细内容,更多关于密码正则表达式写法的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:Regex正则表达式判断密码强度如何利用Java正则表达式校验密码规则javascript手机验证、邮箱验证、密码验证的正则表达式简单封装实例常用正则表达式之密码格式验证大全JS正则表达式验证密码强度JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)Java使用正则表达式验证用户名和密码的方法

© 版权声明

相关文章