当斜杠 ( / ) 后跟下划线 ( _ ) 或连字符 ( - ) 时不匹配
Unmatch when Slash( / ) is followed by Underscore( _ ) or hyphen( - )
我正在Javascript中构建一个ID,它不允许特殊字符和大写字母。我们可以在 ID 中包含 / _ -
,但它不应该以这些开头。
- 你好正确
- helloWorld不正确
- 123你好正确
- hello/world 正确
- -你好不正确
- _你好不正确
- $你好不正确
- /你好不正确
- 你好$ 不正确
- hello_world 正确
- 你好世界正确
- hello-world/apple 正确
- hello_world/apple 正确
- hello_world/apple123正确
我有以下 regEx 几乎可以处理所有情况,但是有一种情况,如果存在斜杠 (/),则不应在其后跟连字符 (-) 或下划线 (_),我无法做到这一点解决
^(?=.{1,50}$)(([a-z0-9])+([-_/a-z0-9])*)$
- hello_world/-apple 不正确
- hello_world/_apple 不正确
- hello_world//苹果不正确
如有任何帮助,我们将不胜感激。
您可以使用
^(?=.{1,50}$)[a-z0-9]+(?:[-_\/][a-z0-9]+)*[-_\/]?$
参见regex demo。
详情:
^
- 字符串开始
(?=.{1,50}$)
- 字符串中只能有 1 到 50 个字符
[a-z0-9]+
- 一个或多个小写 ASCII 字母或数字
(?:[-_\/][a-z0-9]+)*
- 零个或多个序列
[-_\/]
- 一个 -
、_
或 /
char
[a-z0-9]+
- 一个或多个小写 ASCII 字母或数字
[-_\/]?
- 可选的 -
、_
或 /
char
$
- 字符串结尾。
我正在Javascript中构建一个ID,它不允许特殊字符和大写字母。我们可以在 ID 中包含 / _ -
,但它不应该以这些开头。
- 你好正确
- helloWorld不正确
- 123你好正确
- hello/world 正确
- -你好不正确
- _你好不正确
- $你好不正确
- /你好不正确
- 你好$ 不正确
- hello_world 正确
- 你好世界正确
- hello-world/apple 正确
- hello_world/apple 正确
- hello_world/apple123正确
我有以下 regEx 几乎可以处理所有情况,但是有一种情况,如果存在斜杠 (/),则不应在其后跟连字符 (-) 或下划线 (_),我无法做到这一点解决
^(?=.{1,50}$)(([a-z0-9])+([-_/a-z0-9])*)$
- hello_world/-apple 不正确
- hello_world/_apple 不正确
- hello_world//苹果不正确
如有任何帮助,我们将不胜感激。
您可以使用
^(?=.{1,50}$)[a-z0-9]+(?:[-_\/][a-z0-9]+)*[-_\/]?$
参见regex demo。
详情:
^
- 字符串开始(?=.{1,50}$)
- 字符串中只能有 1 到 50 个字符[a-z0-9]+
- 一个或多个小写 ASCII 字母或数字(?:[-_\/][a-z0-9]+)*
- 零个或多个序列[-_\/]
- 一个-
、_
或/
char[a-z0-9]+
- 一个或多个小写 ASCII 字母或数字
[-_\/]?
- 可选的-
、_
或/
char$
- 字符串结尾。