javascript - 正则表达式在生产中不匹配字符串,但适用于测试器

标签 javascript regex

我有以下字符串:/v0/lifts/0626df905120f6d6/refs/8f23576e6838b528。我正在尝试获取第三个 URL 字符串,因此编写了以下 RegEx:/([^/]*)\w+/g。根据 Regexr,这应该是 match all parts of the URL .

然后,我尝试使用 Javascript 访问第三个数组元素:

var key = /([^/]*)\w+/g.exec('/v0/lifts/0626df905120f6d6/refs/8f23576e6838b528')[2];

但是,这是未定义的。如果您打印它的结果(作为 JSON),您将得到 ["v0","v"]

有什么问题吗?

最佳答案

错误的第一件事是使用错误的工具来完成工作。

只需拆分 /,您不需要正则表达式。

'/v0/lifts/0626df905120f6d6/refs/8f23576e6838b528'.split('/')[3]; //0626df905120f6d6

现在,如果您确实想使用正则表达式,请改用 match:

'/v0/lifts/0626df905120f6d6/refs/8f23576e6838b528'.match(/([^/]*)\w+/g) //["v0", "lifts", "0626df905120f6d6", "refs", "8f23576e6838b528"]

exec 仅在每次匹配有多个捕获组时才有用。

关于javascript - 正则表达式在生产中不匹配字符串,但适用于测试器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26703561/

相关文章:

javascript - 在右上角显示一个小图像

javascript - 将 ruby​​ 方法移植到 javascript

javascript - 使用 JavaScript 获取 JSON 以在页面上显示

javascript - 如何从 JSON 数据创建树结构

c++ - 我在这个使用 std::regex 的正则表达式中犯了什么错误

javascript - $编译:ctreq error in angular code

javascript - 如何根据选择的选项值验证表单输入字段?

javascript - 将字符串+Javascript中的多行替换为单行

Ruby 模式匹配 - 查找所有可能匹配项的数量

regex - Excel中的反向字符串搜索