我花了好几个小时试图解决这个问题。
这是我的正则表达式字符串:
^(?=.{4})(?!.{32})[a-zA-Z0-9_]+((\.(-\.)*-?|-(\.-)*\.?) [a-zA-Z0-9_]+)*$
-
你可以在这里测试它
这是我试图完成的(用户名验证):
- 字符串长度范围 -> 确定
- 字母、数字、_ - 。允许(- 和 . 不允许在用户名的开头和/或结尾)-> OK
- 需要防止重复字符(一行超过 5 个字符)->需要帮助!
我花了好几个小时试图解决这个问题。
这是我的正则表达式字符串:
^(?=.{4})(?!.{32})[a-zA-Z0-9_]+((\.(-\.)*-?|-(\.-)*\.?) [a-zA-Z0-9_]+)*$
-
你可以在这里测试它
这是我试图完成的(用户名验证):
这:
^(?=.{4})(?!.{32})(?!.*(.)\1{4})\w[\w.-]+\w$
使用另一个(负)前瞻来处理第三个条件。这将确保没有字符,即其自身后跟 4 次。
\w
我还通过使用which代表简化了您的字符类[a-zA-Z0-9]
。此外,正如 FJ 指出的那样,您可以将前两个前瞻合并为一个:
^(?=.{4,31}$)(?!.*(.)\1{4})\w[\w.-]+\w$
尝试以下操作:
^(?=.{4,31}$)(?![-.])(?:(?!(.)\1{4})[-.\w])+(?<![-.])$
这假设您实际上是要防止重复字符,而不是允许。