在 JavaScript 正则表达式中是否有等价于 \G
的东西?我需要以精确的偏移量匹配模式。设置 g
标志和 .lastIndex
从给定索引向前搜索,但不会在偏移量处完全匹配。
XRegExp有这个 y
修饰符,这可能是我正在寻找的,但它似乎在 Node/V8 中不起作用。
最佳答案
我认为您唯一能做的就是将.lastIndex
设置为您的起点,尝试与.exec()
匹配,然后如果你得到一个匹配,检查 .lastIndex
的更新值。如果它等于你的起始位置加上比赛结果的长度,那么比赛就在你想要的地方开始。
所以:
var re = /banana/g;
re.lastIndex = 6;
var mr = re.exec("hello banana");
if (mr[0].length + 6 === re.lastIndex)
alert("good banana");
我永远不会声称这是一种“好”的做事方式,这只是我所知道的唯一可能性。
关于JavaScript 正则表达式\G + 等效偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23984726/