我有幾個換行符標記文本,像這樣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