删除第一个和最后一个<br/>来自字符串

Remove first and last <br /> from string

本文关键字:gt 字符串 br 最后一个 第一个 lt 删除      更新时间:2023-11-03

我有这个html代码:

<p id="demo">Visit <br /> stackoverflow <br /> or jsfiddle <br /></p>
<button onclick="myFunction()">Try it</button>
function myFunction()
{
    var str = document.getElementById("demo").innerHTML; 
    var res = str.replace("<br />","");
    document.getElementById("demo").innerHTML=res;
}

我想从中删除第一个和最后一个<br />,而不是全部
这是我的小提琴http://jsfiddle.net/3W83m/

以下是您所问的一般问题的解决方案:

var arr = str.split(/<br's*'/?>/);
var res = arr[0]+arr.slice(1,-1).join('<br>')+arr.slice(-1);

这个答案不要求第一个和最后一个孩子是<br>

如果你只想在最后删除<br>,那么很容易:

var res = str.replace(/^'s*<br's*'/?>|<br's*'/?>'s*$/g,'');

演示

如果您确定第一个和最后一个元素的子元素是br,您可以尝试这种方式:其他方式可以循环测试第一个和第二个br并删除它们。

function myFunction() {
    var elem= document.getElementById("demo");
    elem.removeChild(elem.firstElementChild);
    elem.removeChild(elem.lastElementChild);
}

演示

为了确保它只删除第一个和最后一个BR,而不删除任何其他元素(如果第一个/最后一个不是BR),您可以添加一个简单的安全检查。

function myFunction() {
    var elem= document.getElementById("demo"), 
        fChild = elem.firstElementChild, 
        lChild =elem.lastElementChild;
if(fChild.tagName === "BR")
    elem.removeChild(fChild);
if(lChild.tagName === "BR")
    elem.removeChild(lChild);
}

第一个<br/>:

if (myString.indexOf('<br/>') > 0) {
  myString = myString.slice(myString.indexOf('<br/>')+5, myString.length);
}

最后一个<br/>:

if (myString.lastIndexOf('<br/>') == myString.length - 5) {
  myString = myString.slice(0, -4);
}