Я хочу замінити всі виникнення символів пробілу (пробіл, вкладка, новий рядок) у JavaScript.
Як це зробити?
Я намагався:
str.replace(/ /gi, "X")
Я хочу замінити всі виникнення символів пробілу (пробіл, вкладка, новий рядок) у JavaScript.
Як це зробити?
Я намагався:
str.replace(/ /gi, "X")
Відповіді:
Ти хочеш \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");
replace
функція не змінюється str
, тому вам доведеться призначити її назад.
perl = TRUE
, як-отgsub(pattern = "[\\s]+", ..., perl = TRUE)
Ми також можемо використовувати це, якщо хочемо змінити всі кілька об'єднаних порожніх пробілів одним символом:
str.replace(/\s+/g,'X');
Побачити це в дії тут: https://regex101.com/r/d9d53G/1
Пояснення
/
\s+
/ Г
\s+
відповідає будь-якому символу пробілу (рівний [\r\n\t\f\v ]
)+
Кількісний коефіцієнт - відповідає між одним і необмеженим часом, якомога більше разів, віддаючи по мірі необхідності (жадібно)
Ви пробували \s
?
str.replace(/\s/g, "X");
Спробуйте це:
str.replace(/\s/g, "X")
\s\n\t
відповідає: будь-який символ пробілу, за яким йде новий рядок, а потім вкладка.
Насправді це працювало, але
просто спробуйте це.
взяти значення / \ s / g в строкову змінну, як
String a = /\s/g;
str = str.replaceAll(a,"X");
replaceAll
?
Я використовував метод "slugify" від underscore.string, і він працював як шарм:
https://github.com/epeli/underscore.string#slugifystring--string
Прикольне те, що ви можете просто імпортувати цей метод, не потрібно імпортувати всю бібліотеку.