我有以下字符串:/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/