从字符串中提取超链接地址 这个问题是不是很难? 没人能解答吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 try<html><head><title>从字符串中提取超链接地址(by [email protected])</></title><META http-equiv=Content-Type content="text/html; charset=gb2312"><script language=javascript>//<!--function getHrefs(str) { var links,tmp,pos; links=""; str=str.replace(/\r|\n/g," "); //剔除字符串中的回车换行 while (true) { pos=str.search(/<a .*href\s*=\s*/i); //找<a XXX href=XXX形式的字符串(避免分析link href=xxx样子的字符串) if (pos<0) break; str=str.substr(pos+2); //将<a 及其以前的部分去掉 pos=str.search(/ href\s*=\s*/i); //找 href=XXX形式的字符串 if (pos<0) break; str=str.substr(pos); //将href以前的部分去掉 pos=str.search(/<\/a>/i); //找</a> if (pos<0) break; tmp=str.substring(0,pos+4); //截取包含链接的字符串 tmp=getHref(tmp); //参数tmp的形式:href=aaaa xxx>yyyy</a> if (tmp) {links += tmp+"\n\r";} str=str.substr(pos+4); //将处理过的部分(</a>及其以前的部分)去掉 } return links;}function getHref(str) { var strhref,pos,char0,r,noHref,text; if (str==null|str=="") {return "";} r=/href\s*=\s*([^>]+)>(.+)<\/a>/i; r.test(str); if(RegExp.$2 == "xiaz") { noHref=/mailto:|#|javascript:|vbscript:|file:/i; str=str.replace(r,"$1"); //取得 href=xxx 的xxx部分 if ( str.search(noHref)>=0 ) {return "";} //不处理此类链接 str=str.replace(/(^\s+)|(\s+$)/g, ""); //去除首尾空格 char0=str.charAt(0); strhref=""; if (char0=="'" | char0=="\"") { //有引号时,取引号内的部分 pos=str.indexOf(char0,1); if (pos>0) {strhref=str.substring(1,pos);} } else { //没有引号时,分两种情况 pos=str.indexOf(" ",1); if (pos>0) //href=xxx后有空格,说明还有其他属性,取空格以前的部分 {strhref=str.substring(0,pos);} else //href=xxx后没有空格,取全部,即是href=aaaa>的形式 {strhref=str;} } var wr=/^'|^"|^\||^\\|^<|^>|^&/; if ( strhref.search(wr)>=0 ) {return "";}}else {return "";} return strhref;}//--></script></head><body><h3>从字符串中提取超链接地址</h3><p>作者:howwa([email protected])<br/>时间:2007-7-1<br/>blog:<a target=_blank href=http://blog.sina.com.cn/u/1495389370>http://blog.sina.com.cn/u/1495389370</a><br/></p>请在这里提供文本:<br/><textarea cols=80 rows=10 name=mytext>function checksq(){if (document.sq.user.value.length<1){alert("请输入用户信息!");return false;}return true;}function check(){if (document.se.text.value.length<1){alert("请输入关键字!");return false;}return true;}//--><!--//function check0(){if ((document.jstj.sm.value.length<1) && (document.jstj.zz.value.length<1) && (document.jstj.cbs.value.length<1) && (document.jstj.cbrq.value.length<1) ){alert("请输入检索信息!");return false;}return true;<img src="images/folder.gif"><span class="p6"><font color="#669900">yinqsj</font></span><br/> <img src="images/yd.gif" width="11" height="14"><a href=rcount.asp?ssnum=1002>yued</a> <img src="images/down.gif" width="11" height="14"><a href=dcount.asp?ssnum=1002>xiaz</a> <img src="images/pl.gif" width="11" height="14"><a href=guestbook/index.asp?ssnum=1002&bookname=yinqsj发表评论</a> <img src="images/sq.gif" width="11" height="14"><a href=sq/add.asp?ssnum=1002&bookname=yinqsj >添加个人书签</a> </font> </span></td><img src="images/down.gif" width="11" height="14"><a href=dcount.asp?ssnum=2745>xiaz</a> <img src="images/folder.gif"><span class="p6"><font color="#669900">yinqsj</font></span><br/><img src="images/down.gif" width="11" height="14"><a href=dcount.asp?ssnum=1279>xiaz</a> </textarea><br/><input type=button value="OK,Please click me!" onclick="document.all.mylinks.value=getHrefs(document.all.mytext.value)"><br/><br/>这里是分析出来的链接地址:<br/><textarea cols=80 rows=10 name=mylinks></textarea></body></html> 这么长...形容简单点行不行...考虑多点异常情况好不好... 关于js中的正则表达式 当textarea获得焦点后,如何让光标移到最后。 $(this) 如何获取它下面的其他元素呢? 急!会用extree的进来,关于checkbox问题 鼠标放在div里移动,背景图片也会移动,这种效果怎么做? 如何让TEXT得到焦点时播放音频文件? 请解释一下jquery中 ajaxComplete这个函数怎么用,网上的信息太少了,谢谢 div的style是overflow:hidden,如何判断div的内容是否overflow 大家帮我看看这段代码有什么错误 setCapture()是否有用? javascript输出html标签问题(100分求) 请教open属性
<html>
<head>
<title>从字符串中提取超链接地址(by [email protected])</></title>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<script language=javascript>
//<!--
function getHrefs(str) {
var links,tmp,pos;
links="";
str=str.replace(/\r|\n/g," "); //剔除字符串中的回车换行
while (true) {
pos=str.search(/<a .*href\s*=\s*/i); //找<a XXX href=XXX形式的字符串(避免分析link href=xxx样子的字符串)
if (pos<0) break;
str=str.substr(pos+2); //将<a 及其以前的部分去掉
pos=str.search(/ href\s*=\s*/i); //找 href=XXX形式的字符串
if (pos<0) break;
str=str.substr(pos); //将href以前的部分去掉
pos=str.search(/<\/a>/i); //找</a>
if (pos<0) break;
tmp=str.substring(0,pos+4); //截取包含链接的字符串
tmp=getHref(tmp); //参数tmp的形式:href=aaaa xxx>yyyy</a>
if (tmp) {links += tmp+"\n\r";}
str=str.substr(pos+4); //将处理过的部分(</a>及其以前的部分)去掉
}
return links;
}function getHref(str) {
var strhref,pos,char0,r,noHref,text;
if (str==null|str=="") {return "";}
r=/href\s*=\s*([^>]+)>(.+)<\/a>/i;
r.test(str);
if(RegExp.$2 == "xiaz")
{
noHref=/mailto:|#|javascript:|vbscript:|file:/i;
str=str.replace(r,"$1"); //取得 href=xxx 的xxx部分
if ( str.search(noHref)>=0 ) {return "";} //不处理此类链接
str=str.replace(/(^\s+)|(\s+$)/g, ""); //去除首尾空格
char0=str.charAt(0);
strhref="";
if (char0=="'" | char0=="\"") { //有引号时,取引号内的部分
pos=str.indexOf(char0,1);
if (pos>0) {strhref=str.substring(1,pos);}
} else { //没有引号时,分两种情况
pos=str.indexOf(" ",1);
if (pos>0) //href=xxx后有空格,说明还有其他属性,取空格以前的部分
{strhref=str.substring(0,pos);}
else //href=xxx后没有空格,取全部,即是href=aaaa>的形式
{strhref=str;}
}
var wr=/^'|^"|^\||^\\|^<|^>|^&/;
if ( strhref.search(wr)>=0 ) {return "";}
}
else {return "";} return strhref;
}
//-->
</script>
</head><body>
<h3>从字符串中提取超链接地址</h3>
<p>
作者:howwa([email protected])<br/>
时间:2007-7-1<br/>
blog:<a target=_blank href=http://blog.sina.com.cn/u/1495389370>http://blog.sina.com.cn/u/1495389370</a><br/>
</p>
请在这里提供文本:<br/>
<textarea cols=80 rows=10 name=mytext>
function checksq()
{
if (document.sq.user.value.length<1)
{alert("请输入用户信息!");
return false;}
return true;}
function check()
{
if (document.se.text.value.length<1)
{alert("请输入关键字!");
return false;}
return true;
}
//-->
<!--//
function check0()
{
if ((document.jstj.sm.value.length<1) && (document.jstj.zz.value.length<1) && (document.jstj.cbs.value.length<1) && (document.jstj.cbrq.value.length<1) )
{
alert("请输入检索信息!");
return false;
}
return true;
<img src="images/folder.gif"><span class="p6"><font color="#669900">yinqsj</font></span><br/>
<img src="images/yd.gif" width="11" height="14"><a href=rcount.asp?ssnum=1002>yued</a>
<img src="images/down.gif" width="11" height="14"><a href=dcount.asp?ssnum=1002>xiaz</a>
<img src="images/pl.gif" width="11" height="14"><a href=guestbook/index.asp?ssnum=1002&bookname=yinqsj发表评论</a>
<img src="images/sq.gif" width="11" height="14"><a href=sq/add.asp?ssnum=1002&bookname=yinqsj >添加个人书签</a> </font>
</span></td><img src="images/down.gif" width="11" height="14"><a href=dcount.asp?ssnum=2745>xiaz</a>
<img src="images/folder.gif"><span class="p6"><font color="#669900">yinqsj</font></span><br/>
<img src="images/down.gif" width="11" height="14"><a href=dcount.asp?ssnum=1279>xiaz</a>
</textarea>
<br/>
<input type=button value="OK,Please click me!" onclick="document.all.mylinks.value=getHrefs(document.all.mytext.value)">
<br/><br/>这里是分析出来的链接地址:<br/>
<textarea cols=80 rows=10 name=mylinks>
</textarea>
</body>
</html>
形容简单点行不行...
考虑多点异常情况好不好...