gpt4 book ai didi

javascript - 使用 ^[a-z0-9_-]{3-20}$ 的用户名正则表达式

转载 作者:行者123 更新时间:2023-11-28 11:36:33 25 4
gpt4 key购买 nike

我正在使用这个 ^[a-z0-9_-]{3-20}$ 正则表达式来验证用户名..

我的要求

  • 应该在 3-20 之间
  • 除连字符和下划线外不应包含特殊字符
  • 应该以字母开头

这个正则表达式有什么问题

  • 它检查 3-20,但当字符串具有 3-20 之间的特殊字符时,它也会返回 true
  • 当特殊字符在 1-3 之间时,它可以工作(返回 false {预期的内容}),但当特殊字符在 3-20 之间时,它会失败(返回 true {预期的内容})...

我正在使用 yii 框架和默认规则匹配模式...是yii的错吗...?

最佳答案

你可以使用这个:

/^[a-z][a-z0-9_-]{2,19}$/i

您必须使用 , 在大括号量词中写入范围。我首先放置了一个唯一的字母字符类来遵循您的规范(以字母开头),因此我将量词递减为 {2,19}

我假设您允许大写字母,并且我添加了一个 i 修饰符,但如果您只允许小写字母,则可以将其删除。

请注意,您可以这样编写此正则表达式:

/^[a-z][\w-]{2,19}$/i

因为\w代表[a-zA-Z0-9_]

关于javascript - 使用 ^[a-z0-9_-]{3-20}$ 的用户名正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18562664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com