2012-11-23 27 views
2

我正在嘗試使用javascript在文本中查找和替換換行符。如何找到換行符並用JavaScript代替<br>元素?

以下的作品。它將字符a替換爲字符z。

var text = "aasdfasdf"; 
text= text.replace(/a/g,"z"); 
alert(text); 

以下是基於此和其他留言板上的其他帖子沒有。基本上JavaScript不會觸發:

var text = "aasdfasdf"; 
text= text.replace(/\n/g,"z"); 
alert(text); 

...這是許多職位之一,表明它應該工作。

JavaScript: How to add line breaks to an HTML textarea?

,並按照我在Firefox無法正常工作或方式:

text = text.replace(/\n\r?/g, '<br />'); or 
text = text.replace("\n", '<br />'); 

注:我知道有文本variable..I沒有斷行只是用一個簡單字符串用於測試目的。

任何人都可以看到什麼可能是錯誤的,或讓我看到一種方法來做到這一點,實際工作。

謝謝。

+0

' 「你好\ nworld」 .replace的另一種解決方案(/ \ r嗎?\ n /克,' ')===' 你好world'' ...我沒有看到問題。 –

+0

轉義字符ie似乎正在打破它。非常令人沮喪。 – user1260310

回答

8

我包括我的投注通過處理\r\n(序列),然後處理\r\n通過字符類,像這樣:

text = text.replace(/\r\n/g, '<br />').replace(/[\r\n]/g, '<br />'); 

。第一替代原來的順序\r\n<br />。第二個替換替換使用字符串自己發現的任何\r\n個字符。

更多關於JavaScript的正則表達式here

+0

在Windows上,換行符是'\ r \ n',使用您的正則表達式,您將獲得'

'...... –

+0

這個腳本沒有爲我啓動...有些東西正在破壞代碼。 – user1260310

+0

@SamuelCaillerie:實際上,在Windows中,換行符是否以'\ r \ n'或'\ n'結尾取決於您使用的瀏覽器。 (奇怪,但是的確如此。)但是,至少在某些瀏覽器中,它們仍然是'\ r \ n'。我已更新。 –

0

要處理窗口換行字符嘗試

text = text.replace(/\r\n/g, '<br />').replace(/[\r\n]/g, '<br />'); 
1

的ECMAScript標準化換行符在字符串成「\ n \ r」和DOM的標準化換行符字符串成「\ n」。這兩個操作系統的不可知這些格式:

  • 的Windows - CRLF
  • 的Unix - LF
  • 舊的Mac - CR你如何接收

來完成這項任務的正確方法取決於字符串以及你如何寫出來。

0

對於兩種類型的行尾

str.replace(new RegExp('\r?\n','g'), '<br />'); 
相關問題