2012-07-20 58 views
-2

我有一個文本:如何使用Javascript正則表達式替換一個換行符?

我需要「<br>」,當有超過一個換行符用一個破發更換更換一個換行符(\r\n)。

例如:

LINE1 
LINE2 

LINE3 
LINE4 



LINE3 
LINE4 

變爲:

LINE1<br>LINE2 
LINE3<br>LINE4 
LINE5<br>LINE6 

答案:

.replace(/([^\r\n])\r\n([^\r\n])/g, '$1<br>$2').replace(/[\r\n]+/g, "\r\n"); 
+2

[你有什麼嘗試?](http://whathaveyoutried.com) – 2012-07-20 15:39:17

+0

這是非常微不足道的,很可能已經解釋了堆棧溢出的某個地方。你有沒有試過谷歌? – 2012-07-20 15:49:55

+0

夥計們,不要這麼聰明,它可以破壞你的週末! =) – WHITECOLOR 2012-07-20 16:34:28

回答

5
str 
    .replace(/\r\n([^\r\n])/g, "<br>$1") 
    .replace(/[\r\n]+/g, "\r\n"); 
+0

替換(/(\ r \ n)+/g,「
」),用於替換我的文本中的所有換行符
,其中我有多個換行符,需要用一行換行符來重新換行(不是
) – WHITECOLOR 2012-07-20 15:48:13

+0

@WHITECOLOR:看到我更新的答案。它在我的控制檯測試,它的工作原理/ – 2012-07-20 15:48:55

+0

我在節點得到的結果是:LINE1 LINE2

LINE3
線路4
LINE3
線路4 - 一行 – WHITECOLOR 2012-07-20 15:56:23

0

這可以用一個簡單的正則表達式來完成:

str.replace(/[\r\n]+/g, "<br>"); 
  • [\r\n]+匹配或者是一個普通換行符或回車接着發生至少一次,並與<br>
  • g改性劑替換它告訴它匹配不僅僅是一次
更換行
0

我建議的東西是寬容不同的換行符組合:

str = str.replace(/[\r\n]+/g, "<br>"); 

這將匹配是否只有CR,只是LF或它們的任意組合,它將匹配它們的任何連續序列並用<br>代替它。 「g」標誌告訴它替換字符串中的所有這樣的序列。