正则需求,请求各位大佬前来叨扰?

新手上路,请多包涵

长度8-20个字符,字母、数字、大写、标点符号至少包含3种,不允许使用空格和中文

阅读 2.1k
3 个回答

我觉得这个不一定完全用正则式去处理,起码不是一个规则式能处理的。
“字母、数字、大写、标点符号至少包含3种”这里其实准确描述是“小写字母、数字、大写、标点符号至少包含3种” 这个就是规则式不能简单处理的。
我要处理大致是

  1. 一个判断有8-20位字符,且不包含空格和中文的规则式测试
  2. 分别构造判断是否有 小写字母、数字、大写字母、标点符号 的规则式,并对前述字符串进行测试,每个测试通过则一个计数器(比如名为typeCount,该初始化为0)加1,4个测试后如果typeCount>=3就符合要求,这个测试中还可以结合测试规则对应给出类型符合的提示。

这个一般是用于设置密码的要求吧。

一般是至少包含1种,至少包含3种的正则倒没见过

需求不是很明确,一条正则也没办法同时满足所有条件,尤其是至少包含3种,需要分开判断。
还有就是要明确标点符号到底指的是那些符号,这几个字太笼统了。

if(val.test(/[A-z0-9\.\,\:\'\"\`\?\!]{8,20}/)&&val.test(/[A-z]/)&&val.test(/[0-9]/)&&val.test(/\.\,\:\'\"\`\?\!/)){};
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题