正则表达式选择HTML中的部分

时间:2014-10-07 06:19:16

标签: javascript html regex

我需要从滚动的HTML源代码中提取元属性。滚动后的HTML代码包含如下

示例:

<meta property="og:site_name" content="asasasas">
<meta property="og:title" content="asajhskajhsaksp;" /> 
<meta property="og:image" content="images.cxs.com/2014/09/modit1.gif?w=209" />

这里我想得到的内容只有meta property="og:image",即结果应该只是

  

images.cxs.com/2014/09/modit1.gif?w=209

3 个答案:

答案 0 :(得分:3)

使用jquery是如此困难

$('meta[property="og:image"]').attr('content')

答案 1 :(得分:1)

正如@Biffen所说,不要使用正则表达式来解析HTML。

如果在变量中有所述字符串,则可以使用querySelector(),如

&#13;
&#13;
var html = '<meta property="og:site_name" content="asasasas" /><meta property="og:title" content="asajhskajhsaksp;" /><meta property="og:image" content="images.cxs.com/2014/09/modit1.gif?w=209" />';
var el = document.createElement('div');
el.innerHTML = html;
var meta = el.querySelector('meta[property="og:image"]');
console.log(meta.content);

document.getElementById('result').innerHTML = meta.content;
&#13;
<div id="result"></div>
&#13;
&#13;
&#13;


如果它是当前页面的一部分,那么

&#13;
&#13;
var meta = document.querySelector('meta[property="og:image"]');
console.log(meta.content);

document.getElementById('result').innerHTML = meta.content;
&#13;
<meta property="og:site_name" content="asasasas"/>
<meta property="og:title" content="asajhskajhsaksp;" /> 
<meta property="og:image" content="images.cxs.com/2014/09/modit1.gif?w=209" />

<div id="result"></div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以使用Arun建议的方法,但可能有用户代理不支持Selectors API或不支持所需的功能(例如IE8)。在这种情况下,您可以使用getElementsByTagName和普通旧的for循环。

var node, nodes = document.getElementsByTagName('meta');
for (var i=0, iLen=nodes.length; i<iLen; i++) {
  node = nodes[i];

  if (node.getAttribute('property') == 'og:image') {

    // do something with content
    console.log(node.content);
  } 
}

以上内容适用于任何使用中的浏览器,并且不需要任何外部库。