简化JavaScript正则表达式

rel1x

我如何简化我的正则表达式(^(\w+)\/(\w+)\/(\d+)$|^(\w+)\/(\w+)\/$|^(\w+)\/(\w+)$)以匹配类似的示例controller/action(/id)我当前的正则表达式看起来很长很复杂:(

匹配示例:

controller/action
controller/action/
controller/action/123

不匹配:

controller/
controller/action/action
controller/action/123/
controller/action/123/456
维克多·史翠比维

您可以使用以下带有可选组的正则表达式

^(\w+)\/(\w+)(?:\/(\d+)?)?$
             ^^^       ^ ^

正则表达式演示

此正则表达式匹配:

  • ^ -字符串开头
  • (\w+) -一个或多个字母数字或下划线字符
  • \/-一个/符号
  • (\w+) -一个或多个字母数字或下划线字符
  • (?:\/(\d+)?)?-可选(一次或零次出现)序列(由于(?:...)?构造,非捕获组(?:...)+一个?-一个或零个-量词)匹配
    • \/ -正斜杠
    • (\d+)?-匹配一个或多个数字的可选捕获组(但是由于将?量词应用于整个组,所以可能会缺少该组(...)
  • $ -弦锚的末端。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章