如何使用javascript从最后一行删除某些字符串?

时间:2016-08-14 04:58:27

标签: javascript

我的字符串看起来像这样

<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=""/>

这是我到目前为止所做的

&#13;
&#13;
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;
&#13;
&#13;

我设法删除了最后一行的</a><!--nextpage-->。现在我还不知道如何在最后一行删除<a href="page.com/03">。请注意,字符串将始终具有不同数量的行和网址

2 个答案:

答案 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/