首页 > 解决方案 > 如何制作正则表达式来验证用户名

问题描述

我写了这个正则表达式

/(?=.*[a-z])(?!.*[A-Z])([\w\_\-\.].{3,10})/g

检查以下条件

>has minimum of 3 and maximum of 10 characters.
>must contain atleast a lowercase alphabet.
>must contain only lowercase alphabets, '_', '-', '.' and digits.

这有效,但即使有超过 10 个字符也会返回 true。

我想要一个新的或修改过的正则表达式来检查上述给定的条件。

标签: regexvalidation

解决方案


  1. 添加锚点
  2. 删除最后一个点
  3. 如果您使用了正确的字符类,则负前瞻是没用的

此正则表达式将起作用:

 ^(?=.*[a-z])[a-z0-9_.-]{3,10}$

演示和解释


推荐阅读