6

Как удалить все переносы строк из строки

2

Я имею текст в текстовом поле (textarea) и считываю его с помощью атрибута .value.

Теперь я хотел бы удалить все переносы строк (символы, которые создаются при нажатии на Enter) из моего текста, используя метод .replace с регулярным выражением. Как мне указать перенос строки в regex?

Если это невозможно, существует ли другой способ решения этой задачи?

5 ответ(ов)

6

Перевод:

Переносы строк (в более точном выражении: новые строки) могут быть представлены одним из следующих вариантов: возврат каретки (CR, \r, на старых Маках), перенос строки (LF, \n, на Unix-системах, включая Linux) или комбинация CR и LF (\r\n, на Windows). (В отличие от другого ответа, это не имеет никакого отношения к кодировке символов.)

Следовательно, наиболее эффективным регулярным выражением для поиска всех вариантов является

/\r?\n|\r/

Если вы хотите найти все новые строки в строке, используйте глобальный поиск,

/\r?\n|\r/g

Далее используйте метод replace, как уже было предложено в нескольких других ответах. (Скорее всего, вы не хотите удалять новые строки, а заменять их на другие пробелы, например, на пробел, чтобы слова оставались целыми.)

0

Чтобы удалить символы новой строки, используйте следующий код:

yourString.replace(/\r?\n/g, '')

После этого вы можете удалить пробелы в начале и конце строки с помощью метода trim:

yourString.trim()

Таким образом, сначала вы уберете все символы новой строки, а затем обрежете лишние пробелы.

0

Вы можете использовать \n в регулярных выражениях для обозначения символов новой строки, а \r для обозначения возврата каретки.

var str2 = str.replace(/\n|\r/g, "");

Разные операционные системы используют разные символы для обозначения конца строки, чаще всего в сочетаниях \n и \r. Это регулярное выражение заменит все их вариации.

0

Самое простое решение будет таким:

let str = '\t\n\r это  \n \t   \r  тест \r   \n пример \t  \r \n';
str = str.replace(/\s+/g, ' ').trim();
console.log(str); // выводит: "это тест пример"

Метод .replace() с регулярным выражением /\s+/g заменяет все группы символов пробелов на одинарный пробел по всему тексту, после чего мы используем .trim(), чтобы удалить лишние пробелы в начале и в конце строки.

К символам пробела относятся:

[ \f\n\r\t\v​\u00a0\u1680​\u2000​-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]

0

Чтобы удалить все символы переноса строки (как \r, так и \n) из строки в JavaScript, вы можете воспользоваться методом replace и регулярным выражением. В вашем примере используется регулярное выражение /[\r\n]/g, которое соответствует всем символам переноса строки в строке str.

Вот пример кода:

var str = "bar\r\nbaz\nfoo";

// Удаляем все переносы строк
var result = str.replace(/[\r\n]/g, '');

console.log(result); // Вывод: "barbazfoo"

Таким образом, переменная result будет содержать строку без символов переноса строк, и вывод будет barbazfoo.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь