当斜杠(/)后面跟着下划线(_)或连字符(-)时不匹配

  • 本文关键字:连字符 不匹配 下划线 regex
  • 更新时间 :
  • 英文 :


我正在构建一个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.

最新更新