我有几个换行符标记文本,像这样jQuery的更换BR标签
<br></br>
和几双换行符像这样
<br></br><br></br>
我想摆脱单一<br></br>
的,但我想要保持双重的 使用jQuery或Jscript我怎么能告诉它做到这一点 当我使用.filter("<br></br>")
它没有工作,因为它摆脱了两个
有没有办法用replaceWith替换<br></br><br></br>
的实例?或者一些其他的方式
我有几个换行符标记文本,像这样jQuery的更换BR标签
<br></br>
和几双换行符像这样
<br></br><br></br>
我想摆脱单一<br></br>
的,但我想要保持双重的 使用jQuery或Jscript我怎么能告诉它做到这一点 当我使用.filter("<br></br>")
它没有工作,因为它摆脱了两个
有没有办法用replaceWith替换<br></br><br></br>
的实例?或者一些其他的方式
最简单的方法就是三个步骤:
text = text.
replace(/<br><\/br><br><\/br>/g, '____MAGICMARKER____').
replace(/<br><\/br>/g, '').
replace(/____MAGICMARKER____/g, '<br></br><br></br>')
希望____MAGICMARKER____
从来都不是,也将永远,是你的文本的一部分。另一种可能性(和更好的,万无一失一个)将是:
text = text.replace(/(<br><\/br>)+/g, function(all, once) {
if (all == once) return "";
return all;
});
注意,这是所有写假设的问题你的前提是正确的:你有一个文本(即一个字符串)。如果您有文档片段,那么您想在其innerHTML
上执行此操作。
利用html
尝试,RegExp
/<br><br>+[\s|\n]/g
匹配<br><br>
后跟空格字符或换行字符
$("body").html(function(i, html) {
return html.replace(/<br><br>+[\s|\n]/g, "")
});
console.log($("body").html());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<body>
<br></br>
and several double line breaks like so
<br></br><br></br>
<br></br>
and several double line breaks like so
<br></br><br></br>
<br></br>
and several double line breaks like so
<br></br><br></br>
</body>
你能告诉我你想要的结果的例子吗?您可以将所有'
'替换为'
'。那是你要的吗?尽管你可以使用javascript [replace()](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/replace)方法。 –
@RickHitchcock:的确如此。但是,它是有效的XHTML;而OP没有在问题中指定文档类型。不过,问题不在于渲染,而在于文本处理。 – Amadan