gpt4 book ai didi

java - 验证用户名的正则表达式

转载 作者:IT老高 更新时间:2023-10-28 20:45:48 28 4
gpt4 key购买 nike

我正在尝试创建一个正则表达式来根据这些条件验证用户名:

  1. 只包含字母数字个字符,下划线
  2. 下划线和点不能在结尾开始 用户名(例如 _username/username_/.username/username. )。
  3. 下划线和点不能相邻(例如user_.name)。
  4. 下划线或点不能在一行中多次使用(例如 user__name/user..name)。
  5. 字符数必须介于 8 到 20 之间。

这是我到目前为止所做的;听起来它强制执行所有标准规则但第 5 条规则。我不知道如何将第 5 条规则添加到此:

 ^[a-zA-Z0-9]+([._]?[a-zA-Z0-9]+)*$

最佳答案

^(?=.{8,20}$)(?![_.])(?!.*[_.]{2})[a-zA-Z0-9._]+(?<![_.])$
└─────┬────┘└───┬──┘└─────┬─────┘└─────┬─────┘ └───┬───┘
│ │ │ │ no _ or . at the end
│ │ │ │
│ │ │ allowed characters
│ │ │
│ │ no __ or _. or ._ or .. inside
│ │
│ no _ or . at the beginning

username is 8-20 characters long

如果您的浏览器由于缺乏负面的后视支持而引发错误,请使用以下替代模式:

^(?=[a-zA-Z0-9._]{8,20}$)(?!.*[_.]{2})[^_.].*[^_.]$

关于java - 验证用户名的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12018245/

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