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

如题所述

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

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

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

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

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

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-03
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里用正则来验证密码,大小写字母,数字及特殊符号最少包含两种

第2个回答  推荐于2017-11-22
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才符合要求,否//则验证失败追问

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

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