js密码正则表达式:要求包含大小写字母、数字和特殊符号,8~16位

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js密码正则表达式:要求包含大小写字母、数字和特殊符号,8~16位相关的知识,希望对你有一定的参考价值。

1、首先我们在script中编写函数。

2、下图中的代码就是判断手机号码中最重要的代码,我们依次进行解释。

3、js正则表达式test方法的使用,test方法的返回值是布尔值,通过该值可以匹配字符串中是否存在于正则表达式相匹配的结果,如果有匹配内容,返回ture,如果没有匹配内容返回false,该方法常用于判断用户输入数据的合法性。

4、我们写入一个符合要求的手机号码。

5、然后进行测试得到如下图的测试结果"手机号码符合格式要求"。

6、我们写入一个不符合要求的手机号码。

参考技术A var v=$("#text").val();
reg=/^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$)^.8,16$/;
alert(reg.test(v));

上面这个正则表示的是不能为纯数字,不能为纯字母,不能为纯特殊符号,综合起来就是必须为数字 字母 特殊符号中最少两种,如果你要求必须包含三种的话,就接着往上加就行:

(?![0-9]+$) 这句意思是设定后面不能为纯数字
(?![a-z]+$) 这句意思是设定后面不能为纯小写字母
。。。
照着这个格式我们继续写:
(?![0-9a-z]+$) 不能为小写字母与数字
(?![0-9A-Z]+$) 不能为大写字母与数字
(?![0-9a-zA-Z]+$) 不能为大写,小写字母与数字

把这三个也加上去,就只剩一种情况了,就是必须四种都包含

可以看这篇文章,写得很详细,还有在线实例:

jquery里用正则来验证密码,大小写字母,数字及特殊符号最少包含两种

参考技术B function validateInput(obj)
var str = obj.value;
var regUpper = /[A-Z]/;
var regLower = /[a-z]/;
var regStr = /[^A-Za-z0-9]/;
var complex = 0;
if (regLower.test(str))
++complex;

if (regUpper.test(str))
++complex;

if (regStr.test(str))
++complex;

if (complex < 3 || str.length < 8)
alert("包含大小写字母,数字,特殊字符,长度至少8位");
else
alert("成功");


//参考,可以分别分解开来匹配,如果输入是小写字符,累计+1,如果输入大写字符+1,如果输//入非大、小写字符以及数字认为是特殊字符+1,只有累计等于3时并且长度大于8才符合要求,否//则验证失败追问

你的思路很好,为什么不能弄成一个表达式呢

本回答被提问者和网友采纳

密码的正则表达式必须包含 8 个字符,2 个小写或大写字母和 1 个特殊字符 '*' 5 位数字

【中文标题】密码的正则表达式必须包含 8 个字符,2 个小写或大写字母和 1 个特殊字符 \'*\' 5 位数字【英文标题】:Regex for Password must contain 8 characters, 2 letter both lower or uppercase letters and one special character ' * ' 5 digit number密码的正则表达式必须包含 8 个字符,2 个小写或大写字母和 1 个特殊字符 '*' 5 位数字 【发布时间】:2015-05-26 09:40:10 【问题描述】:

我想为密码创建一个表达式,如下所示:

密码的正则表达式必须包含 8 个字符,以 2 个小写或大写字母开头,包含一个特殊字符 * 和一个 5 位数字。

例如:az*12345

必须以 2 个字符开头; 仅包含单个*; 以 5 位数字结尾。

我已经尝试过这种模式: (?=(.*[^a-zA-Z])2)(?=.*[*]1)(?=(.*\d)5).8$

但是,它产生的结果与上面的正则表达式几乎相同。它以任何字符开头,但我想要上面提到的确切模式。我知道我很接近它。请建议我该怎么做。

【问题讨论】:

regex101.com/r/fH8jW4/2? 特殊字符必须是星号 (*) 吗?那么^[a-zA-Z]2\*\d5$ 还不够吗? 如果您不希望它以任何字符开头,请不要让它以.* 开头。这意味着任何字符零次或多次。 感谢保罗.. 太棒了.. 它有效.. 谢谢 nick.. 这就是解决方案 【参考方案1】:

如果您只想匹配 [2-letters]+[*]+[5-digits] 模式,这就是您要查找的内容:

^[a-zA-Z]2\*[0-9]5$.

【讨论】:

以上是关于js密码正则表达式:要求包含大小写字母、数字和特殊符号,8~16位的主要内容,如果未能解决你的问题,请参考以下文章

js如何正则验证密码

正则表达式验证密码必须由大小写字母、数字、特殊字符组成

至少一个大写字母、一个小写字母、一个数字或特殊字符的正则表达式

密码的正则表达式必须包含 8 个字符,2 个小写或大写字母和 1 个特殊字符 '*' 5 位数字

密码的正则表达式 = 一个数字以及大小写字母和特殊字符但是!开头或结尾没有特殊字符

js正则判断一个字符串里必须包含大写字母,小写字母,数字,特殊字符? 必须包含其中三项,求教