【发布时间】:2011-10-21 17:42:39
【问题描述】:
我正在使用 Javascript 解析一个中等复杂的语法,我想使用正则表达式来匹配数字等标记。
给定一个包含语法的字符串、一个表示数字(比如)的正则表达式和字符串中的偏移量,我想知道正则表达式是否与该偏移量处的字符串完全匹配。
我可以设置 lastIndex,调用 RegExp.exec 并检查结果匹配的索引属性以查看匹配是否发生在预期的偏移量,但这非常低效,因为 exec 将搜索整个字符串,如果它没有找到在起始偏移处匹配。
Javascript 规范说“模式评估(“编译”)为内部过程值。RegExp.prototype.exec 然后可以将此过程应用于字符串和字符串中的偏移量,以确定模式是否从正是字符串中的偏移量。”
这正是我想要的,但似乎没有办法访问这个内部函数。谁知道有没有?
附:我目前正在通过将输入字符串拆分为令牌数组来避免此问题,但我不希望这样做。
【问题讨论】:
-
我不确定我是否理解正确,但你不能改用
str.substring(index)并匹配其上的正则表达式以查看它是否与索引0匹配? -
@pimvdb - 请参阅下面我对 Rob 的回答
标签: javascript regex