如何用js获取文本中的链接?

runningcow 2011-11-03 04:23:29
比如一段文本
<li><a href="http://localhost/z18/article/143.htm" title="测试">测试1</a>
<a href="http://localhost/z11/article/23.htm" title="测试">测试2</a>
<a href="localhost/z12/article/25.htm" title="测试">测试3</a></li>


获取
http://localhost/z18/article/143.htm
http://localhost/z11/article/23.htm
localhost/z12/article/25.htm
这样的结果
...全文
389 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuzai 2011-11-04
  • 打赏
  • 举报
回复
根据5楼,写了个func

function getlink(str){
var result=[];
result = str.match(/href="[^\s]*(?=")/ig);
for(var i=0;i<result.length;i++){
result[i] = result[i].replace('href="','')
}
return result;
}
峭沙 2011-11-04
  • 打赏
  • 举报
回复
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>demo</title>
</head>
<body>
<script type="text/javascript">
var s = '<li><a href="http://localhost/z18/article/143.htm" title="测试">测试1</a>'
+'<a href="http://localhost/z11/article/23.htm" title="测试">测试2</a>'
+'<a href="localhost/z12/article/25.htm" title="测试">测试3</a></li>';
var result = [];
s.replace(/href=\"([^\"]*)\"/ig, function(){
result.push(arguments[1]);
return arguments[0];
});
alert(result);
</script>
</body>
</html>
峭沙 2011-11-04
  • 打赏
  • 举报
回复
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>demo</title>
</head>
<body>
<script type="text/javascript">
var s = '<li><a href="http://localhost/z18/article/143.htm" title="测试">测试1</a>'
+'<a href="http://localhost/z11/article/23.htm" title="测试">测试2</a>'
+'<a href="localhost/z12/article/25.htm" title="测试">测试3</a></li>';
var div = document.createElement('div');
div.innerHTML = s;
var result = [];
s.replace(/href=\"([^\"]*)\"/ig, function(){
result.push(arguments[1]);
return arguments[0];
});
alert(result);
</script>
</body>
</html>
hh161151 2011-11-04
  • 打赏
  • 举报
回复
如果是一个文本,那就这样:


var str = '<li><a href="http://localhost/z18/article/143.htm" title="测试">测试1</a><a href="http://localhost/z11/article/23.htm" title="测试">测试2</a><a href="localhost/z12/article/25.htm" title="测试">测试3</a></li>'
var obj = document.createElement("div");
obj.innerHTML = str;
var arr = obj.getElementsByTagName("a");
for(var i = 0, len = arr.length; i < len; i++){
console.log(arr[i].href);
}
obj = null;

agui54762 2011-11-03
  • 打赏
  • 举报
回复
顶!!
[Quote=引用 1 楼 liangws 的回复:]
JScript code


var arr = [],
els = document.getElementsByTagName("a");
for (var i = els.length; i--;){
arr.push(els[i].href);
}
alert(arr)
[/Quote]
诺维斯基 2011-11-03
  • 打赏
  • 举报
回复
确实,js不好写,要是用C#就好写了。
p2227 2011-11-03
  • 打赏
  • 举报
回复
由于js没有前宽断言,只能想到这个笨方法


var str='<li><a href="http://localhost/z18/article/143.htm" title="测试">测试1</a><a href="http://localhost/z11/article/23.htm" title="测试">测试2</a><a href="localhost/z12/article/25.htm" title="测试">测试3</a></li>'

var arr=[];
arr = str.match(/href="[^\s]*(?=")/g);

alert(arr[0].replace('href="','')) //arr[1],arr[2]同理

runningcow 2011-11-03
  • 打赏
  • 举报
回复
我这个是一个独立的文本文件,或者是一个var str="..."里面的内容,不是一个htm文件,不能用document.xxx
zmc1233 2011-11-03
  • 打赏
  • 举报
回复
var arr = [],
els = document.getElementsByTagName("a");
for (var i = els.length; i--;){
arr.push(els[i].href);
}
alert(arr)

顶一楼的方法,这就OK

补充:若是想得到一条,根据ID获取对象,然后取href:
var aa=document.getElementById("temp").href;

alert(aa);
p2227 2011-11-03
  • 打赏
  • 举报
回复
加载jQuery

$("a").attr(href)


liangws 2011-11-03
  • 打赏
  • 举报
回复

var arr = [],
els = document.getElementsByTagName("a");
for (var i = els.length; i--;){
arr.push(els[i].href);
}
alert(arr)

87,914

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧