Desejo substituir todas as ocorrências de caracteres de espaço em branco (espaço, guia, nova linha) no JavaScript.
Como fazer isso?
Eu tentei:
str.replace(/ /gi, "X")
Desejo substituir todas as ocorrências de caracteres de espaço em branco (espaço, guia, nova linha) no JavaScript.
Como fazer isso?
Eu tentei:
str.replace(/ /gi, "X")
Respostas:
Você quer \s
Corresponde a um único caractere de espaço em branco, incluindo espaço, tabulação, avanço de formulário, avanço de linha.
Equivalente a
[ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]
no Firefox e [ \f\n\r\t\v]
no IE .
str = str.replace(/\s/g, "X");
replace
função não é modificada str
; portanto, você deve atribuí-la novamente.
perl = TRUE
, comogsub(pattern = "[\\s]+", ..., perl = TRUE)
Também podemos usar isso se quisermos alterar todos os vários espaços em branco unidos com um único caractere:
str.replace(/\s+/g,'X');
Veja em ação aqui: https://regex101.com/r/d9d53G/1
Explicação
/
\s+
/ g
\s+
corresponde a qualquer caractere de espaço em branco (igual a [\r\n\t\f\v ]
)+
Quantificador - Corresponde entre uma e várias vezes, quantas vezes for possível, devolvendo o que for necessário (ganancioso)
Você já experimentou o \s
?
str.replace(/\s/g, "X");
Tente o seguinte:
str.replace(/\s/g, "X")
\s\n\t
corresponde: qualquer caractere de espaço em branco, seguido por uma nova linha, seguida por tab.
Na verdade, tem sido trabalhado, mas
apenas tente isso.
leve o valor / \ s / g para uma variável de string como
String a = /\s/g;
str = str.replaceAll(a,"X");
replaceAll
?
Eu usei o método "slugify" do underscore.string e funcionou como um encanto:
https://github.com/epeli/underscore.string#slugifystring--string
O legal é que você pode realmente importar esse método, não precisa importar a biblioteca inteira.