Javascript JQuery删除多个<;p>;在contenteditable div中使用正则表达式

Javascript JQuery删除多个<;p>;在contenteditable div中使用正则表达式,javascript,jquery,html,css,regex,Javascript,Jquery,Html,Css,Regex,我正试图使用jquery正则表达式为我的contenteditable div创建一个remove multiple,但我这里有一个问题。因此,我在这篇文章中尝试过 在这个演示中,若你们按enter键,那个么我的js代码不允许创建段落,但我只想删除,若用户创建树乘以空段落 我不想允许: Hi Bro How are you thanks 我想这样做: Hi Bro How are you thanks 这是我的代码: $(文档).re

我正试图使用jquery正则表达式为我的contenteditable div创建一个remove multiple,但我这里有一个问题。因此,我在这篇文章中尝试过

在这个演示中,若你们按enter键,那个么我的js代码不允许创建段落,但我只想删除,若用户创建树乘以空段落

我不想允许:

    Hi



    Bro



    How are you




   thanks
我想这样做:

Hi

Bro 

How are you
thanks
这是我的代码:

$(文档).ready(函数(){
$(“body”)。在(“keyup”,“.text”,function()上{
var item=document.getElementsByClassName(“文本”)[0];
var text=item.innerText | | item.textContent;
//var text=$(“.text”).text();
text=text.replace(//gi',);
document.getElementsByClassName(“text”)[0].innerHTML=text;
});
});
.text{
位置:相对位置;
宽度:100%;
最大宽度:500px;
保证金:0px自动;
填充:30px;
边框:1px实心#d8dbdf;
边缘顶部:50px;
边界半径:3px;
-webkit边界半径:3px;
-moz边界半径:3px;
}
.text[contentEditable=true]:空:不(:焦点):在{
内容:attr(占位符);
颜色:#444;
}
* {
框大小:边框框;
-webkit框大小:边框框;
-moz框大小:边框框;
}

…如果您的
实际上是空的,则会执行此任务。但是,看起来它们不是(它们包含

s)

因此,一个可能更好的选择是使用一个函数,将文本转换为html,检查是否出现3个空段落,删除第三个:

函数removeThirdParagraph(){
让clone=$('.text').clone();
clone.html($('.text')[0].innerHTML);
设ps=clone.find('p');
ps.each(功能(即,e){
如果($(e).is('p+p+p'))
&&isEmptyP(ps.eq(i-2))
&&isEmptyP(ps.eq(i-1))
&&isEmptyP(ps.eq(i))){
e、 删除();
}
});
//您可能需要$('.text').text(克隆[0].innerHTML)
$('.text').html(克隆[0].innerHTML)
}
函数isEmptyP(p){
返回p.text().replace(/(?:\r\n |\r |\n |\s)/g')。长度==0;
}
移除HirdParagraph()






测试







另一个测试



为什么“你好”后面的点没有空格?@RokoC.Buljan这没什么。我只是告诉你,
用户可以继续用另一个多个

来写一个单词,谢谢你的回答。我仍在尝试,但开发人员控制台如下所示:。这意味着这个解决方案对我不起作用。那些
远不是空的。它们都有一个

标签。我会想另一种方法,但请注意你的问题并不准确。是的,那些
远不是空的。这就是为什么
p:empty{display:none;}
不起作用。@DevStud。用一个函数更新了我的答案,这个函数似乎可以满足您的需要。@andrei gheorgiu是的,它工作得很好。但当用户在contenteditable div中键入时,无法将其与一起使用?
p:empty + p:empty + p:empty { display: none; }