Заменить все пробельные символы - PullRequest
108 голосов
/ 28 июня 2011

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

Я пытался:

str.replace(/ /gi, "X")

Ответы [ 9 ]

264 голосов
/ 28 июня 2011

Вы хотите \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");
29 голосов
/ 28 июня 2011

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

str.replace(/\s/g, "X")
12 голосов
/ 20 ноября 2015

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

str.replace(/\s+/g,'X');
8 голосов
/ 28 июня 2011

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

str.replace(/\s/g, "X");
4 голосов
/ 28 июня 2011

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

str.replace(/\s/gi, "X")

РЕДАКТИРОВАТЬ (правильная версия без опечатки):

str.replace(/\s/g, "X")
1 голос
/ 22 марта 2019

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

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

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

var str = "hello my world";
str.replace(/\s/g, "") //the result will be "hellomyworld"
1 голос
/ 23 января 2017

Не / Ги, но / г

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

дает

"My_Family_File.jpg"
1 голос
/ 28 июня 2011

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

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

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

String a = /\s/g;

str = str.replaceAll(a,"X");
0 голосов
/ 06 февраля 2018

Я использовал метод «slugify» из underscore.string, и он работал как шарм:

https://github.com/epeli/underscore.string#slugifystring--string

Круто то, что вы действительно можете просто импортировать этот метод, не нужно импортировать всю библиотеку.

...