【问题标题】:JavaScript error invalid quantifierJavaScript 错误无效的量词
【发布时间】:2012-09-05 17:23:09
【问题描述】:

这个javascript代码:

var regex = /(?<=<img src=").*?(?=")/gm;
var src = regex.match(str); 

给我这个错误:

SyntaxError: invalid quantifier ?<=<img src=").*?(?=")
    in eval() line 0

有什么问题?

【问题讨论】:

  • 您是否使用eval 创建RegExp 对象?你不应该。
  • 我认为 JavaScript 不支持lookbehinds。

标签: javascript regex parsing


【解决方案1】:

你需要像这样转义你的问号:

/(\?<=<img src=").*?(\?=")/gm

编辑:

以上解决了您的“无效量词”问题。但是,正如@Pointy 在他的评论中指出的那样,RegExp 对象不包含match 函数。您可能在字符串上寻找match。 (例如,"string".match(/reg(exp)/);)。

【讨论】:

  • 如果我这样做,我会在下一行收到一个新错误。 TypeError: regex.match 不是函数
  • @rajat 这是因为在正则表达式实例上没有称为“匹配”的方法。我认为您正在寻找“执行”或“测试”。
【解决方案2】:

看看match()格式

var src = str.match(/(?<=<img src=").*?(?=")/gm);

【讨论】:

    猜你喜欢
    • 2012-07-25
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多