87,921
社区成员
发帖
与我相关
我的任务
分享
<p>
<a href="0">主页</a>><a href="A101">新页面1</a><a href="aa/A101">新页面1</a>
</p>
<p>
<a href="0">主页</a>><a href="A101">新页面1</a><a href="A101">新页面1</a>
</p>
var href = "aa/bb/cc/dd/A101";
var arr = href.split("/");
href = arr[arr.length-1];
var htmlContent = /'<p><a href="0">主页</a>><a href="A101">新页面1</a><a href="aa/A101">新页面1</a><a href="http://www.abc.com/aa/A101">新页面1</a></p>/ig
var pattern = /(href=")([^"]*)(?=\/)\/(.+?)(")/ig;
htmlContent = htmlContent.replace(pattern,"$1$3$4");
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>
<a href="0">主页</a>><a href="A101">新页面1</a><a href="aaa/A101">新页面1</a><a href="http://aaa/A101">新页面1</a>
</p>
<script>
var as = document.getElementsByTagName('a');
for(var i = 0; i < as.length; i++){
var href = as[i].getAttribute('href');
href = href.replace(/.*\/+/g, '');
as[i].setAttribute('href', href);
}
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>
<a href="0">主页</a>><a href="A101">新页面1</a><a href="aaa/A101">新页面1</a><a href="http://aaa/A101">新页面1</a>
</p>
<script>
var as = document.getElementsByTagName('a');
for(var i = 0; i < as.length; i++){
var href = as[i].getAttribute('href');
href = href.replace(/\/+/g, '');
as[i].setAttribute('href', href);
}
</script>
</body>
</html>
<p>
<a href="0">主页</a>><a href="A101">新页面1</a><a href="aaa/A101">新页面1</a><a href="http://aaa/A101">新页面1</a>
</p>
var str = '<p><a href="0">主页</a>><a href="A101">新页面1</a><a href="http:// aa/A101">新页面1</a></p>';
var elem_buff = document.createElement('div');
elem_buff.innerHTML = str;
var as = elem_buff.getElementsByTagName('a');
for(var i = 0; i < as.length; i++){
var href = as[i].getAttribute('href');
href = href.replace(/^.*?\/+(?=[^\/]*$)/, '');
as[i].setAttribute('href', href);
}
alert(elem_buff.innerHTML);
var str = '<p><a href="0">主页</a>><a href="A101">新页面1</a><a href="aa/A101">新页面1</a></p>';
var linkElments = str.match(/<a\s+.*?<\/a>/g);
var reg = /(<a\s+(?:[^\<\>]+\s+)*?href=)([\'\"])(.+?)(\2.*?\>)/ig;
str = str.replace(reg, function(){
var args = arguments;
args[3] = args[3].replace(/^.*?\/+(?=[^\/]*$)/, "");
return args[1]+args[2]+args[3]+args[4];
});
alert(str);
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>
<a href="0">主页</a>>
<a href="A101">新页面1</a>
<a href="aaa/A101">新页面1</a>
<a href="http://aaa/A101">新页面1</a>
</p>
<script>
var as = document.getElementsByTagName('a');
for(var i = 0; i < as.length; i++){
var href = as[i].getAttribute('href');
var arr = href.split("/");
href = arr[arr.length-1];
as[i].setAttribute('href', href);
}
for(var i = 0; i < as.length; i++){
console.log(as[i].getAttribute('href'));
}
</script>
</body>
</html>
就算你全不是dom,是字符串,你不能自己转换一下吗?
[code=HTML]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cn">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312" />
<title></title>
</head>
<body>
<script type="text/javascript">
var str = '<a href="0">主页</a>><a href="A101">新页面1</a><a href="aaa/A101">新页面1</a><a href="http://aaa/A101">新页面1</a>';
var obj = document.createElement("div");
obj.innerHTML = str;
var as = obj.getElementsByTagName('a');
for(var i = 0; i < as.length; i++){
var href = as[i].getAttribute('href');
var arr = href.split("/");
href = arr[arr.length-1];
as[i].setAttribute('href', href);
}
for(var i = 0; i < as.length; i++){
console.log(as[i].getAttribute('href'));
}
</script>
</body>
</html>
技术是给人服务的,不要一味的追求技术,能用简单的方法就可以用简单的,再说你用正则来replace那么多的字符串,效率不知道有多慢。
var html='your html';
var reg=/(<a[^>]*?href=(['\"\s]?))([^'\"]+)\/(?=[^\/]+\2)/gi;
html=html.replace(reg,'$1');