Заменить все пробельные символы

136

Я хочу заменить все вхождения символов пробела (пробел, табуляция, новая строка) в JavaScript.
Как это сделать?

Я попытался:

str.replace(/ /gi, "X")
Sourav
источник
1
регулярно-expressions.info
Феликс Клинг
1
Что такое "Х" и почему?
Мухаммед Шахзад
А как насчет string.replace ('', "X");
Рамеш Раджендран

Ответы:

315

Вы хотите \s

Соответствует одному пробелу, включая пробел, табуляцию, перевод формы, перевод строки.

Эквивалентно

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

в Firefox и [ \f\n\r\t\v]в IE .


str = str.replace(/\s/g, "X");
Алекс К.
источник
41
+1 за то, что вы запомнили, что replaceфункция не изменяется str, поэтому вы должны назначить ее обратно.
FishBasketGordo
1
В функции вы можете вернуть str.replace, поэтому вам не нужно назначать в этой области.
Стив К
Помните , для R , чтобы использовать perl = TRUE, какgsub(pattern = "[\\s]+", ..., perl = TRUE)
MS БЕРЕНДС
30

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

str.replace(/\s/g, "X")
Quentin
источник
19

Мы также можем использовать это, если мы хотим заменить все объединенные пробелы одним символом:

str.replace(/\s+/g,'X');

Смотрите это в действии здесь: https://regex101.com/r/d9d53G/1

объяснение

/ \s+/ Г

  • \s+соответствует любому символу пробела (равно [\r\n\t\f\v ])
  • + Квантификатор - сопоставляет от одного до неограниченного количества раз, столько раз, сколько возможно, отдавая при необходимости (жадный)

  • Глобальные флаги
    • g модификатор: g lobal. Все матчи (не возвращаются после первого матча)
Милош Станкович
источник
8

Вы пробовали \s?

str.replace(/\s/g, "X");
Майкл Берковски
источник
4

Если вы используете

str.replace(/\s/g, "");

он заменяет все пробелы. Например:

var str = "hello my world";
str.replace(/\s/g, "") //the result will be "hellomyworld"
GigiProve
источник
4

Попробуй это:

str.replace(/\s/g, "X")
Headshota
источник
Это не работает \s\n\tсовпадения: любой символ пробела, за которым следует символ новой строки, а затем табуляция.
Даниэль Кэссиди
3

Не / ги но / г

var fname = "My Family File.jpg"
fname = fname.replace(/ /g,"_");
console.log(fname);

дает

"My_Family_File.jpg"
jimver04
источник
1

На самом деле это сработало, но

просто попробуй это.

принять значение / \ s / g в строковую переменную, как

String a = /\s/g;

str = str.replaceAll(a,"X");
Siten
источник
откуда ты взял replaceAll?
Ионель Лупу