JavaScript 正则表达式\G + 等效偏移量

标签 javascript regex node.js

在 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/

相关文章:

javascript - Kue中如何返回jobID?

javascript - 密码确认验证未按预期显示

java - 从简单的数学方程中提取变量(Java,字符串)

javascript - 如何在 anchor 标记中指定数据 URI 资源的文件名?

javascript - 如何使用正则表达式和 '\' 字符正确解析 JSON?

regex - 正则表达式查找字符串中任意位置的数字(断言字符串中没有数字)

javascript - 我怎样才能确保这个循环在node.js中按预期运行

javascript - 为什么 node.js 会多次显示相同的内容?

javascript - 为我的所有图片添加一个与src无关的data-src,以改善WordPress环境中的延迟加载功能

javascript - 检测用户是否输入了日期、时间或日期时间