长度8-20个字符,字母、数字、大写、标点符号至少包含3种,不允许使用空格和中文
需求不是很明确,一条正则也没办法同时满足所有条件,尤其是至少包含3种
,需要分开判断。
还有就是要明确标点符号
到底指的是那些符号,这几个字太笼统了。
if(val.test(/[A-z0-9\.\,\:\'\"\`\?\!]{8,20}/)&&val.test(/[A-z]/)&&val.test(/[0-9]/)&&val.test(/\.\,\:\'\"\`\?\!/)){};
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
6 回答1.1k 阅读
我觉得这个不一定完全用正则式去处理,起码不是一个规则式能处理的。
“字母、数字、大写、标点符号至少包含3种”这里其实准确描述是“小写字母、数字、大写、标点符号至少包含3种” 这个就是规则式不能简单处理的。
我要处理大致是
typeCount
,该初始化为0)加1,4个测试后如果typeCount>=3
就符合要求,这个测试中还可以结合测试规则对应给出类型符合的提示。这个一般是用于设置密码的要求吧。