Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于在HTML中选择部件的正则表达式_Javascript_Html_Regex - Fatal编程技术网

Javascript 用于在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" /> 这里

我需要从滚动的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”
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的头部部分。。