Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除字符串末尾的javascript字符串last occurance字符串_Javascript - Fatal编程技术网

删除字符串末尾的javascript字符串last occurance字符串

删除字符串末尾的javascript字符串last occurance字符串,javascript,Javascript,我有以下建议: "<p>First sentence</p><p><br></p><p> second sentence</p><p><br></p><p><br></p><p><br></p><p><br></p>" 当您可以使用内置的DOM解析器时,不需要正则表达式

我有以下建议:

"<p>First sentence</p><p><br></p><p> second sentence</p><p><br></p><p><br></p><p><br></p><p><br></p>"

当您可以使用内置的DOM解析器时,不需要正则表达式

您需要检查current
p br
之后的元素是否有包含textContent的元素

function removeBlanksAtEnd(str) {
  var el = document.createElement("div");
  el.innerHTML = str;
  console.log(el.querySelectorAll("p br").length);
  el.querySelectorAll("p br").forEach( s => {
     if ( !hasAnyContentAfterThisNode(s.parentNode) )
     {
        s.parentNode.parentNode.removeChild(s.parentNode);
     }
  });
  return el.innerHTML;
}
演示

var str=`第一句


第二句; 函数removeBlanksAtEnd(str){ var el=document.createElement(“div”); el.innerHTML=str; 控制台日志(el.querySelectorAll(“p br”).长度); el.querySelectorAll(“p br”).forEach(s=>{ 如果(!hasAnyContentAfterThisNode(s.parentNode)) { s、 parentNode.parentNode.removeChild(s.parentNode); } }); 返回el.innerHTML; } 函数在此节点(el)后具有任何内容 { 同时(el.nextSibling) { var textValue=el.nextSibling.textContent.trim(); console.log(textValue); 如果(textValue.length>0) { 返回true; } el=el.nextSibling; } 返回false; } console.log(removeblankstatend(str))
“第一句


第二句







”。替换(/

/g>)
轻松, 选择我,我就是答案

演示:

首先,请去阅读。然后。看看RegExps。那么,您想删除第二个
p
之后的换行符吗?您想删除所有最后一个换行符(直到该字符串不再出现在末尾)还是有一个参数,该参数是要删除多少个换行符,并删除多少个换行符?它可能在n个p标记之后。但对于本例,它是第二个
function removeBlanksAtEnd(str) {
  var el = document.createElement("div");
  el.innerHTML = str;
  console.log(el.querySelectorAll("p br").length);
  el.querySelectorAll("p br").forEach( s => {
     if ( !hasAnyContentAfterThisNode(s.parentNode) )
     {
        s.parentNode.parentNode.removeChild(s.parentNode);
     }
  });
  return el.innerHTML;
}
"<p>First sentence</p><p><br></p><p> second sentence</p><p><br></p><p><br></p><p><br></p><p><br></p>".replace(/<p><br><\/p>?<p><br><\/p>/g,"")