我正在构建一个ID,在Javascript中,它不允许特殊字符和大写字母。我们可以在ID中使用/ _ -
,但它不应该以这些开头。
- 你好正确
- helloWorld的
- 123你好正确
- hello/世界正确
- 中国话不正确的
- _hello的
- $你好错误
- /你好不正确的
- hello $的
- 正确hello_world
- hello world正确 正确
- hello world/苹果 正确
- hello_world/苹果 正确
- hello_world/apple123
我有以下regEx几乎处理所有情况,但是有一种情况,如果斜杠(/)存在,它不应该后跟连字符(-)或下划线(_),我无法解决
^ (? = {1, 50} $) (((a-z0-9)) + ([_/a-z0-9]) *) $
- hello_world/-苹果的
- hello_world/_apple的 <
- hello_world//苹果em>错误
如果有任何帮助,我将不胜感激。
可以使用
^(?=.{1,50}$)[a-z0-9]+(?:[-_/][a-z0-9]+)*[-_/]?$
参见regex演示。
细节:
^
- string start(?=.{1,50}$)
-字符串 中只能有1到50个字符[a-z0-9]+
-一个或多个小写ASCII字母或数字(?:[-_/][a-z0-9]+)*
- 0个或多个序列[-_/]
- a-
,_
或/
char[a-z0-9]+
-一个或多个小写ASCII字母或数字
[-_/]?
-可选-
,_
或/
字符$
- end of string.