我下面有一个字符串,我想删除尾随的但是我正在努力。有什么帮助吗?
This is a string<br>
next line<br>
所以在我的函数之后,字符串应该是
This is a string<br>
next line
执行以下代码似乎不起作用。嗯,它有效,但它没有清除两个尾随的休息时间。
mystring=mystring.replace(/<br>$/,'');
所以如果我的字符串实际上是:
This is a string<br>
next line<br>
<br>
然后上面的代码只返回
This is a string<br>
next line
<br>
答案 0 :(得分:13)
答案 1 :(得分:0)
如果它是HTML元素的内容,您可以使用jQuery删除元素:
$('#container').children('br').last().remove();
如果它是一个字符串,你可以做这样的事情(仍然利用jQuery):
var cleaner = $('<div />').html(mystring);
cleaner.children('br:last-child').remove();
mystring = cleaner.html();
我更倾向于拆分字符串或当前的RegEx,因为您没有像以下那样处理BR标记的情况:<br />
。
答案 2 :(得分:0)
答案 3 :(得分:0)
我测试了你的代码,它似乎工作。我将以下内容粘贴到一个文件中,然后在firefox中查看,然后单击查看源代码。第二个br在源中不可见。
<html>
<body>
<script>
var mystring = 'This is a string<br>\n next line<br>'
mystring=mystring.replace(/<br>$/,'');
document.write(mystring);
</script>
</html>
也许你的mystring变量在br之后的末尾有一个实际的换行符(\ n),所以你的正则表达式不匹配?
答案 4 :(得分:0)
如果要删除元素内的最后一个尾随<br>
,可以使用以下方法:
const element = document.getElementById('element')
console.log('Before:', element.innerHTML)
const last = element.childNodes[element.childNodes.length - 1]
if (last.tagName === 'BR') last.remove()
console.log('After:', element.innerHTML)
<div id="element">Some text<br>other text<br></div>