gpt4 book ai didi

javascript - JS 正则表达式选择

内的所有
- 用于在中断后缩进文本的函数

转载 作者:行者123 更新时间:2023-11-28 11:40:46 25 4
gpt4 key购买 nike

我想选择所有出现的 <br />段落 <p></p> 内用JS中的正则表达式。目前我只是选择全部 <br />像这样:

var regex = /<br\s*[\/]?>/gi;

但是这样做有时会给我带来麻烦,因为我试图对选择进行操作。我需要一个更精确的正则表达式,因为标题中的中断等与我无关。

如果您想了解此内容的上下文,我想替换 <br />有两个段落和合适的类,就像 <br />但要在分隔符后缩进文本,如下所示:

function removeEmptyNodes(selector)
{
$(selector).each(function() {
if ($(this).html().replace(/\s|&nbsp;/g, '').length == 0)
$(this).remove();
});
};
function assignIndents()
{
var str = $("#content").html();
var regex = /<br\s*[\/]?>/gi;
$("#content").html(str.replace(regex, "</p><br /><p>"));
$('br').prev('p').addClass('br');
$('br').next('p').addClass('indent');
removeEmptyNodes('#content p');
$('br').next('.scroller').children('p').first().addClass('indent');
$('br').replaceWith('');
removeEmptyNodes('#content p');
};

编辑:

我的目标是有一个段落有一个或多个换行符。就像这个简单的例子:<p>with some text <br />and another line<p> 。我希望换行符后的文本缩进并位于自己的 p 中。所以我需要分割我原来的p。我不想添加 div 或嵌套在原始段落中的任何其他内容。我需要在末尾有一堆同级 p 标签,如下所示:<p class="br">with some text</p><p class="indent">and another line<p>通过这种方式我替换 <br />分割 p 对我来说并不重要......

最佳答案

为什么不直接找到所有没有正则表达式的东西呢?

$('p').each(function(){
var brs = $('br', this); //all <br>s withing this <p>
//do something with brs
});

fiddle :http://jsfiddle.net/maniator/Ra8ax/

<小时/>

更新:

以下是您对新规范的期望:

$('p').each(function(){

var html = this.innerHTML;
var htmlArray = html.split('<br>');
var new_html = htmlArray[0];

for(var i = 1; i < htmlArray.length; i++){
new_html += "<div class='break'>"+htmlArray[i]+"</div>";
}

this.innerHTML = new_html;

});

fiddle :http://jsfiddle.net/maniator/Ra8ax/8/

<小时/>

无嵌套更新:

JS:

$('p').each(function(){

var html = this.innerHTML;
var htmlArray = html.split('<br>');
var new_html = "<p>"+htmlArray[0]+"</p>";

for(var i = 1; i < htmlArray.length; i++){
new_html += "<p class='break'>"+htmlArray[i]+"</p>";
}

$(this).replaceWith(new_html);

});

fiddle :http://jsfiddle.net/maniator/Ra8ax/11/

关于javascript - JS 正则表达式选择 <p></p> 内的所有 <br/> - 用于在中断后缩进文本的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6389214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com