正则表达式以选择HTML中的部件

Regular Expression to select part in HTML

本文关键字:HTML 选择 正则表达式      更新时间:2023-09-26

我需要从滚动的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" />

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

images.xs.com/2014/09/modet1.gif?w=209

使用jquery 这么难吗

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

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

如果你在一个变量中有上述字符串,你可以像一样使用querySelector()

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;
<div id="result"></div>


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

var meta = document.querySelector('meta[property="og:image"]');
console.log(meta.content);
document.getElementById('result').innerHTML = meta.content;
<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>

您可以使用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);
  } 
}

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