[英]How to extract href= and title values using javascript similar to PHP's preg_match_all()?
我得到了一个HTML字符串作为:var代码; 我想提取href和title的所有值,类似于使用PHP的preg_match_all()
。 我在PHP中做了与所示示例类似的操作,但想知道如何在JavaScript中做到这一点,并将数组中的所有href和title值都作为PHP示例吗?
注意: $input
初始值是div的块,如下例所示:
<div class="up" rel="1234" id="up1234" style="float:right">
<div class="pic" style='border:3px solid #cacaca' >
<a href="/episode 14" title="episode 14">
<img src="images/image14.jpg" alt="watch episode 14" />
</a>
</div>
<a href="/episode 14" title="episode 14 "class="title">watch episode 14</a>
<div class="data" style="height:auto">watch episode 14 </div>
<center>
<a href="episode14" title="episode 14" class="data" id="play_me1234">
<img src="/images/image14.jpg" alt="watch episode 14"/>
</a>
</center>
</div>
preg_match_all('#href\s*=\s*"(.*)"#siU', $input, $foo1);
preg_match_all("#class=\"title\">([^<]+)</a>#", $input, $foo2);
$i = -1;
$foo1[1] = array_unique($foo1[1]);
foreach($foo1[1] as $k => $v ){
//echo $v;
$i++;
echo '<a href="./doit.php?Id='.$v.'&title='.$foo2[1][$i].'"> '.$foo2[1][$i].' </a> <br />' ;
}
<script type="text/javascript">
var pattern = /<a href="([^"]+?)" title="[^"]+?" class="title">([^<]+?)<\/a>/gi;
code = code.match(pattern);
for (i = 0; i < code.length; i++) {
document.write(code[i].replace(pattern, '<a href="./doit.php?Id=$1&title=$2">$2</a><br />'));
}
</script>
您想使用code.match(/your regex here/g)
。 g
修饰符更改match
行为,以使其返回完全匹配的数组,而不是第一个匹配,但会丢失子模式。 您可以通过再次将匹配与正则表达式匹配来获得它们的子模式,但是这次没有修饰符。
也就是说,您可以只解析DOM。 如果元素中包含HTML,则可以使用querySelectorAll("[href]")
查找具有href
属性的元素并循环遍历它们。 同样,使用querySelectorAll(".title")
可以更可靠地找到“ title”元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.