2016-03-29 6 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, '') это не похоже, чтобы поймать его. Я также Google искал и нашел:Javascript - Удалить « п» из строки

..в соответствии с JavaScript синтаксиса регулярных выражений вам нужно два символа обратной косой черты в ваших регулярных выражений литералов, таких как /\\/ или /\\/g.

Но даже когда я проверить выражение только поймать обратную косую черту, он возвращает ложь: (/\\\/g).test(strObj)

RegEx тестер захватывает \n правильно: http://regexr.com/3d3pe

+0

Это опечатка в методе .Привернуть? Не должно быть '/ \\ 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;

Смежные вопросы