var s=document.getElementById("asd").value;
var p=/<div(.*)<\/div>/gim;
var msg=p.exec(s);
alert(RegExp.$1);
源字符串如下:
<div id="Title">
<a href="/Index.aspx" target="_blank"><b>首页</b></a></div> ,这样的字符串上面的正则式无法提取但是如果不换行 <div id="Title"><a href="/Index.aspx" target="_blank"><b>首页</b></a></div> 就能提取我的正则式有上面错误吗?
无论换不换行都无法找到匹配的.
var p=/<div((.|\n)+)<\/div>/gim;
var p=/<div([.\n]*)<\/div>/gsim;
var p=/<div([\S\s]*)<\/div>/gim;
var p=/<div((.|\n)*)<\/div>/gim;都是一个都不能匹配
/<div((.|\n)*)<\/div>/gim;
*换成+就行了 怎么回事?
*不是对前面的匹配0或者多次吗?
*换成+就行了 怎么回事?
*不是对前面的匹配0或者多次吗?
---------------------------------
*和+号一样效果的,你再试试。用lemon520的应该也可以。
那
root_lee
兄写的为哈不能通过?
<a href="/Index.aspx" target="_blank"><b>首页</b></a></div> <div id="sub">
<a href="/sub.aspx" target="_blank"><b>sub</b></a></div> 如果源字符串是这样的话,提取每一个div之间的数据 应该怎么搞呢?
这个匹配你下面的问题。
<input type="Submit" value="处理" onclick="opt();"><br />
<textarea id="result" rows="10" cols="100"></textarea><br />
<script type="text/javascript">
function opt()
{
var str = document.getElementById("source").value;
var reg = /<div[^>]*>[\s\S]*?<\/div>/ig;
var arr = str.match(reg);
for(var i=0;i<arr.length;i++)
{
document.getElementById("result").value += arr[i] + "\n-----------\n";
}
}
</script>