JavaScript - 以任何顺序匹配的正则表达式

时间:2014-03-31 09:35:36

标签: javascript regex match

我有以下正则表达式返回关键字值:

 var keywords = result.match(/<meta name="keywords" content="(.*?)".*/i)[1];

我还需要能够支持“关键字”和“内容”属性的顺序相反的情况,例如:

<meta content="...." name="keywords"

有人可以建议我如何支持这两个订单吗?

2 个答案:

答案 0 :(得分:1)

THE PONY HE COMES

通过触手可及地访问DOM,您没有理由不将HTML转储到临时文档中(或者,如果它是当前文档,则从那里开始处理)。然后,根据浏览器版本,您可以querySelector("meta[name=keywords]")或迭代getElementsByTagName('meta'),直到找到合适的版本,然后再使用getAttribute("content")获取结果。

答案 1 :(得分:0)

使用正向预测首先检查name="keywords"是否存在,然后解析content

var keywords = result.match(/<meta(?=[^>]*\bname="keywords")[^>]*\bcontent="(.*?)".*/i)[1];