javascript – 正则表达式匹配m组中的至少n个

前端之家收集整理的这篇文章主要介绍了javascript – 正则表达式匹配m组中的至少n个前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我打算写一个正则表达式,只有当一个字符串包含至少n个不同类别的字符时才会匹配.我打算用它强制我的用户创建强密码,并想检查密码是否包含至少3个以下内容

>人物
>资本特征
>数字
>特殊字符

如果所有这些类都存在,则编写匹配的正则表达式使用前瞻是微不足道的.但是,我无法绕过“至少3”部分.这甚至是可能的(在一个漂亮,紧凑的表达式中)还是我必须创建一个怪物表达式?

解决方法

我认为这将比列出4中的3个的每个可能组合更紧凑.它利用负向前瞻来确保整个字符串不仅仅由您列出的一个或两个字符类组成:
(?!([a-zA-Z]*|[a-z\d]*|[^A-Z\d]*|[A-Z\d]*|[^a-z\d]*|[^a-zA-Z]*)$).*

按顺序,这里的组是:

>下部和/或上部
>更低和/或数字
>更低和/或特殊
>上部和/或数字
>上部和/或特殊
>数字和/或特殊

如果整个字符串(由于负前瞻中的$)仅包含来自上述任何组的字符,则此正则表达式将失败.

原文链接:https://www.f2er.com/js/240774.html

猜你在找的JavaScript相关文章