【问题标题】:validate user name-best regular expression验证用户名-最佳正则表达式
【发布时间】:2017-01-22 07:05:42
【问题描述】:

我从 google 看到了这个用户名指南

  • 用户名可以包含字母 (a-z)、数字 (0-9)、破折号 (-)、下划线 (_)、撇号 (') 和句点 (.)。
  • 用户名不能连续包含与号 (&)、等号 (=)、方括号 ()、加号 (+)、逗号 (,) 或多个句点 (.)。
  • 用户名可以以非字母数字字符开头或结尾,最多 64 个字符。

(https://support.google.com/a/answer/33386?hl=en) 。

当我尝试使用 jQuery validate 验证我的应用程序的用户名时。除了检测到两个时期外,我设法实现了其他目标。以下是我使用的正则表达式。

/^[a-z0-9_.-]+$/i

我如何修改它来满足这些要求。或者除了使用单个正则表达式之外还有其他选择吗?

【问题讨论】:

  • 是谷歌指南的最终正则表达式还是您正在逐一检查?
  • 正则表达式的否定以不同的方式完成。对于此类检查,您需要negative lookaheads.
  • @SimonPA 这是我试图作为最终正则表达式实现的正则表达式。这样做更好还是进行多次检查?
  • 有人否决了这个问题,这是太愚蠢的问题还是我应该删除这个问题?我在这个问题上学到了很多关于正则表达式的知识!
  • 不要删除它。这里有很多讨厌的人:) 不要注意这一点

标签: javascript jquery regex validation


【解决方案1】:

试试

/^(?!.*\.\.)[\w.-]{6,64}$/

6 是我的一些即兴创作,假设您需要最小用户名长度;)

它使用否定的looka-head来确保没有两个连续的.,然后匹配6-64个允许的字符(\w匹配az、AZ、0-9和_)。

Check it out here at regex101.

【讨论】:

    猜你喜欢
    • 2012-08-14
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    相关资源
    最近更新 更多