2016-03-29 183 views
4
var strObj = '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n{"text": true, ["text", "text", "text", "text"], [{ "text", "text" }]}\n\n\n' 

我試圖通過消毒剝出\n一個字符串,但是當我做.replace(/\\\n/g, '')它似乎並沒有抓住它刪除「\ n」。我也是谷歌搜查,發現:使用Javascript - 從字符串

..in按照JavaScript正則表達式語法,你需要在你的正則表達式文字如/\\//\\/g兩個反斜槓字符。

但是,即使當我測試的表情正好趕上反斜槓,則返回false: (/\\\/g).test(strObj)

正則表達式測試儀捕捉\n正確:http://regexr.com/3d3pe

+0

是,在您.replace方法的錯字?不應該是'/ \\ n /'不是'/ \\\ n /'? – char

+2

您只需要一個反斜槓:'/ \ n +/g'。 http://stackoverflow.com/questions/784539/how-do-i-replace-all-line-breaks-in-a-string-with-br-tags – Tacocat

回答

7

應該只是

.replace(/\n/g, '') 

,除非字符串實際上是

'\\n\\n\\n... 

,這將是

.replace(/\\n/g, '') 
2

你不需要反斜線。

var strObj = '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n{"text": true, ["text", "text", "text", "text"], [{ "text", "text" }]}\n\n\n'; 

strObj.replace(/\n/g, ''); 

此代碼按預期工作。

「{」 文本 「:真,[」 文本 「 」文本「, 」文本「, 」文本「],[{ 」文本「, 」文本「}]}」

3

此處不需要使用RegEx,請使用String#trim刪除前導和尾隨空格。

var strObj = '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n{"text": true, ["text", "text", "text", "text"], [{ "text", "text" }]}\n\n\n'; 
 
var trimmedStr = strObj.trim(); 
 

 
console.log('Before', strObj); 
 
console.log('--------------------------------'); 
 
console.log('After', trimmedStr); 
 
document.body.innerHTML = trimmedStr;