JavaScript 正则表达式函数

标签 javascript regex

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

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

或者

/root/:param1/:param2/:param3/... (without last slash)

有什么想法吗? 谢谢。

最佳答案

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

  1. /root开头
  2. 后跟一些 /:param
  3. 可以选择后跟 /

现在我们只需要为每个组件开发正则表达式并将它们组合起来:

  1. /root开头
    • 字符串的开头由 ^ 标记,后面是 /root
    • ^/root
  2. 后跟一些 /:param:
    • 假设 :param 应匹配 1-N 个不是正斜杠的字符(+ 运算符)[^/]<
    • 这给了我们/[^/]+
    • 可以使用组和 * 运算符来匹配整个单元的 0-N:(/[^/]+)*
  3. 可以选择后跟 /
    • 使用?运算符:/?
    • 附加 $ 来指定字符串的结尾

我们一起得到正则表达式^/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 路径段 you'll need to use a more specific character set而不是我在这里使用的 [^/] 字符。

关于JavaScript 正则表达式函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23981630/

相关文章:

javascript - 工具提示 css 在 li 中的绝对位置

javascript - 用于禁用按钮的 jQuery 电子邮件验证脚本

regex - 如何使用正则表达式在逗号之间添加字符串和空值的引号

PHP日志文件通过正则表达式解析

regex - 如何在 Matlab 中使用 regexprep 将文本中的多个匹配项替换为不同的值

java - gwt jsni document.documentElement.style.height

JavaScript bool 搜索查询生成器界面库?

javascript - 谷歌地图 setCenter 在 IE8 中不工作

python - 为正则表达式编写解析器

python - ksh 风格的左右字符串剥离匹配的表达式?