使用(?<=后置断言时的“ SyntaxError:未终止的正则表达式文字”

时间:2018-10-11 17:59:05

标签: javascript regex lookbehind

在不同的浏览器中,此JavaScript代码出现不同的错误:

    var updatedate = /(?<=\<meta\ name\=\"updated_at\"\ content\=\")([^\"]*)/;

我想要的是从某些页面的元数据中找到更新的日期。它显示如下:

<meta name="updated_at" content="2018-09-17 11:42 AM">

我使用Sublime进行了测试,以确保它能正常工作,然后为了确保正常运行,我在regex101上对其进行了测试,但是Chrome和Mozilla一直给我这个错误。

我想念什么?

1 个答案:

答案 0 :(得分:0)

(?<=...) lookbehind assertion仅在最近才添加到ECMAScript中。最新版本的Chrome支持此功能,但Firefox不支持。

重写正则表达式以使用普通组:

var updatedate = /(?:\<meta\ name\=\"updated_at\"\ content\=\")([^\"]*)/;

然后您可以通过访问data.match(updatedate)[1]提取时间戳。