2013-01-12 51 views
0

我想用javascript中的逗號代替換行符,但代碼似乎不起作用。如何更換換行符?

var data = "Series 
Manga 
Games 
Artbooks 
Visual Novels" 
var output = data.replace(/(\r\n|\n|\r)/gm,","); 
alert(output); 

在這裏你可以看到一個在線版本http://jsfiddle.net/CBvpS/ 任何人都知道如何解決它?

+3

嗯,首先,JA vascript does ** not **有多行變量,除非結尾被轉義。 – Daedalus

回答

3

偉大工程當你輸入的字符串是語法正確:

var data = "Series\nManga\nGames\nArtbooks\nVisual Novels" 
var output = data.replace(/\r?\n/gm,","); 
alert(output); 

http://jsfiddle.net/7V8rg/1/

+1

爲什麼不直接'/ \ r?\ n/gm'? – VisioN

+0

@VisioN這個工程。更新的問題。 – Codeman

2

Javascript沒有像php這樣的多行變量,除非您手動轉義(\)行尾。此外,這不算作換行符,因此您必須插入\n以解決該問題。否則,your code works fine,雖然有一些小的修改。

var data = "Series\n \ 
Manga\n \ 
Games\n \ 
Artbooks\n \ 
Visual Novels"; 
var output = data.replace(/(\r\n|\n|\r)/gm,","); 
alert(output); 

拿筆記,但是,如果你的數據是從例如,輸入文本區域,你當然不必擔心逃避線的末端,它會處理數據,因爲它應該。

2

JavaScript不允許您使用新行繼續字符串,除非您在行尾添加反斜槓。例如:

var string = "a \ 
string is \ 
here"; 

有了這樣說,如果你檢索從不同的來源一些文本,並希望更換新的線路,這樣的事情應該是你所需要的:

string = string.replace(/\n/g, ','); 
+0

這真棒,我其實不知道關於Javascript。我只知道C#中的''''語法# – Codeman