Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript正则表达式函数_Javascript_Regex - Fatal编程技术网

javascript正则表达式函数

javascript正则表达式函数,javascript,regex,Javascript,Regex,我需要编写JS正则表达式(或函数),告诉我字符串是否为该格式: /root/:param1/:param2/:param3/.../ 或 有什么想法吗? 谢谢。如果我正确地解释了您的问题,我们可以将此模式分解为三个主要部分: 从/root 后跟一些/:param 可选后跟一个/ 现在我们只需要为每个组件开发正则表达式,并将它们组合起来: 从/root 字符串的开头用^标记,后面跟着/root ^/root 后跟一些/:param: 比如说:param应该匹配1-N个字符(+运算符),这些

我需要编写JS正则表达式(或函数),告诉我字符串是否为该格式:

/root/:param1/:param2/:param3/.../

有什么想法吗?
谢谢。

如果我正确地解释了您的问题,我们可以将此模式分解为三个主要部分:

  • /root
  • 后跟一些
    /:param
  • 可选后跟一个
    /
  • 现在我们只需要为每个组件开发正则表达式,并将它们组合起来:

  • /root
    • 字符串的开头用
      ^
      标记,后面跟着
      /root
    • ^/root
  • 后跟一些
    /:param
    • 比如说
      :param
      应该匹配1-N个字符(
      +
      运算符),这些字符不是正斜杠
      [^/]
    • 这给了我们
      /[^/]+
    • 可以使用组和
      *
      运算符:
      (/[^/]+)*
  • 可选后跟一个
    /
    • 使用
      运算符:
      /?
    • 附加
      $
      以指定字符串的结尾
  • 我们一起得到正则表达式
    ^/root(/[^/]+)*/?$
    。您可以使用
    RegExp.prototype.test
    检查匹配项:

    r = new RegExp('^/root(/[^/]+)*/?$')
    r.test('/root')                         // => true
    r.test('/root/')                        // => true
    r.test('/root/apple/banana')            // => true
    r.test('/root/zebra/monkey/golf-cart/') // => true
    

    如果您希望匹配URL路径段,而不是我在这里用于
    :param
    字符的
    [^/]

    您有什么想法吗?请提供更多信息。现在还不清楚您的问题是什么。提示:您不需要正则表达式本身
    r = new RegExp('^/root(/[^/]+)*/?$')
    r.test('/root')                         // => true
    r.test('/root/')                        // => true
    r.test('/root/apple/banana')            // => true
    r.test('/root/zebra/monkey/golf-cart/') // => true