我的字符串看起来像这样
<a href="http://www.page.com/01"><img src="http://www.domain.com/test.jpg" alt=""/></a><!--nextpage-->
<a href="http://www.page.com/02"><img src="http://www.domain.com/test.jpg" alt=""/></a><!--nextpage-->
<a href="http://www.page.com/03"><img src="http://www.domain.com/test.jpg" alt=""/></a><!--nextpage-->
我想要做的只是删除最后一行的<a href="http://www.page.com/03">
和</a><!--nextpage-->
!所以最终的输出应该是这样的:
<a href="http://www.page.com/01"><img src="http://www.domain.com/test.jpg" alt=""/></a><!--nextpage-->
<a href="http://www.page.com/02"><img src="http://www.domain.com/test.jpg" alt=""/></a><!--nextpage-->
<img src="http://www.domain.com/test.jpg" alt=""/>
这是我到目前为止所做的
var str = '<a href="page.com/01"><img src="domain.com/test.jpg" alt=""/></a><!--nextpage-->\n<a href="page.com/02"><img src="domain.com/test.jpg" alt=""/></a><!--nextpage-->\n<a href="page.com/03"><img src="domain.com/test.jpg" alt=""/></a><!--nextpage-->\n';
str = str.slice(0, -20);
alert(str)
&#13;
我设法删除了最后一行的</a><!--nextpage-->
。现在我还不知道如何在最后一行删除<a href="page.com/03">
。请注意,字符串将始终具有不同数量的行和网址
答案 0 :(得分:2)
使用内容生成dom元素并完成剩下的工作。
var str = '<a href="http://www.page.com/01"><img src="http://www.domain.com/test.jpg" alt=""/></a><!--nextpage--><a href="http://www.page.com/02"><img src="http://www.domain.com/test.jpg" alt=""/></a><!--nextpage--><a href="http://www.page.com/03"><img src="http://www.domain.com/test.jpg" alt=""/></a><!--nextpage-->';
// create a div eleemnt
var ele = document.createElement('div');
// set the html content as string
ele.innerHTML = str;
// remove the last child node which is the comment
ele.lastChild.remove();
// get the last child node currently which is the `a` tag
var a = ele.lastChild;
// replace the `a` tag with its children
// this only works if single child is inside the a tag
// otherwise you need to get all children and
// append child using appendChild method
// after appending all just remove the `a` tag
ele.replaceChild(a.firstChild, a);
// get the updated html content
console.log(ele.innerHTML);
答案 1 :(得分:-1)
如果你想单独使用Javascript而不是DOM操作,那么这里有一些代码可以帮助你使用正则表达式
var str = '<a href="page.com/01"><img src="domain.com/test.jpg" alt=""/></a><!--nextpage-->\n<a href="page.com/02"><img src="domain.com/test.jpg" alt=""/></a><!--nextpage-->\n<a href="page.com/03"><img src="domain.com/test.jpg" alt=""/></a><!--nextpage-->\n';
var res = str.split("<!--nextpage-->\n");
var newString = res[res.length-2].replace(/<a href=\"([\w\.\/]*)\">/,"");
newString = newString.replace("</a>","");
alert(newString)
这是一个达到同样目的的小提琴 https://jsfiddle.net/BoyWithSilverWings/g8bavgtc/