正则表达式校验字符串格式并指定必须包含某些字符
发布时间:2020-12-14 00:40:24 所属栏目:百科 来源:网络整理
导读:一、需求 要求长度为8-9位,开头是字母 ,必须有数字,必须有下划线 二、思路解析 写法1 :^[a-zA-Z](?=.*_)(?=.*d).{7,8}$ 首先,开头是固定的,以字母开头,所以可以这样写 ^[a-zA-Z]; 然后,要求必须要有数字和下划线,我们可以这些写(?=.*_)(?=.*d)
一、需求要求长度为8-9位,开头是字母 ,必须有数字,必须有下划线 二、思路解析写法1:^[a-zA-Z](?=.*_)(?=.*d).{7,8}$ 首先,开头是固定的,以字母开头,所以可以这样写 ^[a-zA-Z];
然后,要求必须要有数字和下划线,我们可以这些写(?=.*_)(?=.*d) ,这两句的目的分别是校验后面的字符串是否包含下划线和包含数字,是的话才匹配前面的开头字母; 于是,目前的正则是^[a-zA-Z](?=.*_)(?=.*d) ,
但对长度有限制8-9位,所以加上长度的限制^[a-zA-Z](?=.*_)(?=.*d).{7,8}$ 最终,完整的正则表达式就是: ^[a-zA-Z](?=.*_)(?=.*d).{7,8}$
写法2:(?=.*d)(?=.*_)^[a-zA-Z].{7,8}$ 这个写法是先匹配整个字符串是否包含数字和下划线(?=.*d)(?=.*_) 有的话,才执行后面的匹配^[a-zA-Z].{7,8}$
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |