Javascript 用于在HTML中选择部件的正则表达式
我需要从滚动的HTML源代码中提取元属性。滚动后HTML代码包含如下内容 示例:Javascript 用于在HTML中选择部件的正则表达式,javascript,html,regex,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:site_name" content="asasasas">
<meta property="og:title" content="asajhskajhsaksp;" />
<meta property="og:image" content="images.cxs.com/2014/09/modit1.gif?w=209" />
这里我只想得到metaproperty=“og:image”
ie结果应为
images.cxs.com/2014/09/modit1.gif?w=209
使用jquery有那么难吗
$('meta[property="og:image"]').attr('content')
使用jquery有那么难吗
$('meta[property="og:image"]').attr('content')
正如@Biffen所说,不要使用正则表达式来解析html 如果变量中包含上述字符串,则可以像
var html='';
var el=document.createElement('div');
el.innerHTML=html;
var meta=el.querySelector('meta[property=“og:image”]”);
日志(meta.content);
document.getElementById('result').innerHTML=meta.content代码>
正如@Biffen所说,不要使用正则表达式解析html
如果变量中包含上述字符串,则可以像
var html='';
var el=document.createElement('div');
el.innerHTML=html;
var meta=el.querySelector('meta[property=“og:image”]”);
日志(meta.content);
document.getElementById('result').innerHTML=meta.content代码>
您可以使用Arun建议的方法,但是可能存在不支持或不支持所需功能的用户代理(例如IE8)。在这种情况下,您可以使用和一个普通的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);
}
}
var节点,nodes=document.getElementsByTagName('meta');
对于(var i=0,iLen=nodes.length;i您可以使用Arun建议的方法,但是可能存在不支持或不支持所需功能的用户代理(例如IE8)。在这种情况下,您可以使用和普通的旧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);
}
}
var节点,nodes=document.getElementsByTagName('meta');
对于(var i=0,iLen=nodes.length;i@Biffen:使用正则表达式执行此类任务有什么问题?没有递归或正则表达式无法处理的任何事情。@绘制HTML不是一种正则语言,它不能用正则表达式进行可靠的解析,尽管您可能会在HTML解析器中使用正则表达式来标记输入。@Rawing您阅读了ans吗链接的作用是什么?如果property
和content
的顺序相反怎么办?如果其中有其他属性怎么办?如果某个地方有一个被注释掉的meta
元素怎么办?如果属性中有一个HTML元素怎么办?我可以继续…@Biffen:使用regex执行此类任务有什么问题吗?有no递归或任何正则表达式无法处理的事情。@绘制HTML不是一种正则语言,它不能用正则表达式可靠地进行解析,尽管您可能会在HTML解析器中使用正则表达式来标记输入。@Rawing您读过链接的答案了吗?如果属性
和内容
的顺序相反怎么办如果其中有其他属性?如果某个地方有一个注释掉的meta
元素呢?如果属性中有一个HTML元素呢?我可以继续说……OP中没有jQuery标记或提到它。提到了javascript,所以我认为jQuery解决方案可能也足够了没有jQuery标记或提到在OP中提到了javascript,所以我认为jquery解决方案也可以满足hi@Arun,我首先使用CURL抓取网站并将其存储在文件中。$ch=CURL\u init($url);$fp=fopen($file,“w”)或die(“无法打开”。$file.”用于编写。\n”);CURL\u setopt($ch,CURLOPT_FILE,$fp);curl_close($ch);fclose($fp);现在我在那个文件中有了HTML代码..那么接下来我可以像你在上面建议的那样继续吗..或者除了CURL有没有其他方法来获取网站的内容.Bcoz CURL会抓取整个页面,但我只需要HTML的头部分..嗨@Arun,我正在使用CURL首先抓取网站并将其存储在文件中。$ch=CURL_init($url);$fp=fopen($file,“w”)或die($file:“无法打开”。$file.”用于写入。\n”);CURL_setopt($ch,CURLOPT_file,$fp);CURL_close($ch);fclose($fp);现在我在那个文件中有了HTML代码..那么接下来我可以像你在上面建议的那样继续吗..或者除了CURL有没有其他方法可以获取网站的内容..Bcoz CURL可以抓取整个页面,但我只需要HTML的头部部分。。