<a[^>]+href\s*=\s*[\"\']?([^\"\' ]+)[\"\']?.*?\>([\w\W]*?)\<\/a\>[\w\W]*?<font[^>]*?>([\w\W]*?)<\/font>这个正则能匹配
<a href="#1">test link 1</a><font>2009-1-5</font></a><a href="#1">test link 2</a><font>2009-1-6</font></a>但是无法匹配
<a href="###"><a href="#1">test link 1</a><font>2009-1-5</font></a><a href="#1">test link 2</a><font>2009-1-6</font></a></a>即,a标签中嵌套a标签的情况
达人帮忙解决下~~
<a href="#1">test link 1</a><font>2009-1-5</font></a><a href="#1">test link 2</a><font>2009-1-6</font></a>但是无法匹配
<a href="###"><a href="#1">test link 1</a><font>2009-1-5</font></a><a href="#1">test link 2</a><font>2009-1-6</font></a></a>即,a标签中嵌套a标签的情况
达人帮忙解决下~~
<a href="#1">test link 1</a><font>2009-1-5</font></a><a href="#1">test link 2</a><font>2009-1-6</font></a>
<script>
var str = '<a href="###"><a href="#1">test link 1</a><a href="#1">test link 2<font>2</font></a><font>3</font></a>';
while(true){
var re = new RegExp("<a\\b[^>]*>([^<]*|<[^a][^<]*|<\/[^a][^<]*)*</a>","ig");
if(re.test(str)){
var arr = str.match(re);
for(var i=0;i<arr.length;i++){
alert(arr[i]);
}
str = str.replace(re,"");
}else{
break;
}
}
</script>
to 2楼:还没测试~~等下研究下~3Q
to 3楼:你这种我试过了~~不能满足~补充...这个页面上有很多种情况...
<a href="#1">test link 1</a><font>date1</font>
<a href="#2"><font color="#ff0000">test link 2</font></a><font>date2</font>
<a href="#3"><a href="#4"><font color="#ff0000">test link 4</font></a><a href="#5"><strong>test link 5</strong></a></a>差不多就这些了~~~
我现在想得到的格式是<link>|||<text>|||<date>继续求助达人...可再加分。
to 2楼:还没测试~~等下研究下~3Q
to 3楼:你这种我试过了~~不能满足~补充...这个页面上有很多种情况...
<a href="#1">test link 1</a><font>date1</font>
<a href="#2"><font color="#ff0000">test link 2</font></a><font>date2</font>
<a href="#3"><a href="#4"><font color="#ff0000">test link 4</font></a><a href="#5"><strong>test link 5</strong></a></a>差不多就这些了~~~
我现在想得到的格式是<link>|||<text>|||<date>继续求助达人...可再加分。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD> <BODY>
<textarea id="t1" cols="120" rows="15">
<a href="#1">test link 1</a><font>2009-1-5</font></a><a href="#1">test link 2</a><font>2009-1-6</font></a><a href="###"><a href="#1">test link 1</a><font>2009-1-5</font></a><a href="#1">test link 2</a><font>2009-1-6</font></a></a>
</textarea><br/>
result:<br/>
<textarea id="t2" cols="120" rows="15"></textarea>
<input type="button" id="btn1" value="test"/>
<SCRIPT LANGUAGE="JavaScript">
<!--
var $=function(s){return document.getElementById(s)}
var p=/<a[^>]+href\s*=\s*[\"\']?([^\"\' ]+)[\"\']?[^>]*>([^\<]*?)<\/a>[\w\W]*?<font[^>]*?>([\w\W]*?)<\/font>/gm;
$("btn1").onclick=function(){
var v1=$("t1").value;
var ary=v1.match(p);
alert(v1);
var s="";
for(i in ary){
s+=i+"="+ary[i]+"\n";
}
$("t2").value=s;
}
//-->
</SCRIPT>
</BODY>
</HTML>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD> <BODY>
<textarea id="t1" cols="120" rows="15">
<a href="#1">test link 1</a><font>2009-1-5</font></a><a href="#1">test link 2</a><font>2009-1-6</font></a><a href="###"><a href="#1">test link 1</a><font>2009-1-5</font></a><a href="#1">test link 2</a><font>2009-1-6</font></a></a>
</textarea><br/>
result:<br/>
<textarea id="t2" cols="120" rows="15"></textarea>
<input type="button" id="btn1" value="test"/>
<SCRIPT LANGUAGE="JavaScript">
<!--
var $=function(s){return document.getElementById(s)}
var p=/<a[^>]+href\s*=\s*[\"\']?([^\"\' ]+)[\"\']?[^>]*>([^\<]*?)<\/a>[\w\W]*?<font[^>]*?>([\w\W]*?)<\/font>/gm;
$("btn1").onclick=function(){
var v1=$("t1").value;
var ary=v1.match(p);
alert(v1);
var s="";
for(i in ary){
s+=i+"="+ary[i]+"\n";
}
$("t2").value=s;
}
//-->
</SCRIPT>
</BODY>
</HTML>