[英]Remove all line-breaks, but except only one break?
我有以下文字由用戶發送,帶有換行符
Text of example in line 1.
(break line)
(break line)
(break line)
The text is very nice...
(break line)
(break line)
The end.
預期結果:
Text of example in line 1.
The text is very nice...
The end.
NOT: Text of example in line 1. The text is very nice... The end.
我如何在通過PHP的AJAX接收的JavaScript( str.replace
)中做到這一點
$text = strip_tags($text, '<br>');
謝謝您的回答! 但是我測試了所有..然后我發現我的DIV正在生成HTML代碼,我相信這就是為什么它不起作用(RegEx)。 如何忽略HTML元素以使文本帶有換行符?
您可以使用正則表達式替換。
str = str.replace(/\n{2,}/g, "\n");
{2,}
表示匹配前一個表達式的2個或多個。 因此,包含2個或更多換行符的任何序列都將替換為一個換行符。
盡管@Barmar的答案是正確的,但它不適用於不同的OS /平台。
不同的OS使用不同的字符組合用作換行符。
\\r\\n
= CR LF \\n
= LF \\r
= CR 參見\\ r \\ n,\\ r,\\ n它們之間有什么區別?
我將建議以下可在各個平台上運行的RegEx。
str = str.replace(/(\r\n?|\n){2,}/g, '$1');
說明:
()
:捕獲組 \\r\\n?
:匹配\\r
后跟\\n
可選)。 因此匹配
\\r\\n
或 \\r
|
:RegEx中的OR條件 \\n
:匹配\\n
{2,}
:匹配先前的字符兩次或更多次 g
:全局標志 $1
:第一個捕獲的組,即OS支持的單個換行符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.