如何编写正则表达式限制用户名的点号、下划线各最多出现一次
调整后的正则表达式
^(?!.*\..*\.)(?!.*_.*_)[_.a-z0-9]{3,15}$
规则说明
- 完整保留原有正则的校验逻辑:仅允许使用小写字母、数字、点号、下划线,字符串长度限制为3-15位
- 新增两个负向前瞻实现额外校验规则:
(?!.*\..*\.):禁止字符串中出现2个及以上点号(?!.*_.*_):禁止字符串中出现2个及以上下划线
用例匹配验证
匹配通过(返回True)的用例:
.yhjgh899_:含1个点、1个下划线,两类特殊符号数量均未超出限制_.9874juyh:含1个下划线、1个点,两类特殊符号数量均未超出限制899j_nnfg:仅含1个下划线,符合要求874083.:仅含1个点,符合要求
匹配失败(返回False)的用例:
_jdun_jd.:存在2个下划线,触发校验限制jkuf..jf:存在2个点号,触发校验限制
内容的提问来源于stack exchange,提问作者Yijing
相关产品推荐
相关产品推荐

