Eu quero substituir todas as ocorrências de um ponto ( .
) em uma string JavaScript
Por exemplo, eu tenho:
var mystring = 'okay.this.is.a.string';
Eu quero começar: okay this is a string
.
Até agora eu tentei:
mystring.replace(/./g,' ')
mas isso acaba com toda a cadeia substituída por espaços.
javascript
string
replace
Omar Abid
fonte
fonte
Respostas:
Você precisa escapar do
.
porque ele tem o significado de "um caractere arbitrário" em uma expressão regular.fonte
g
modificador no final da expressão é usado. Pense nisso como (g) globalmente.Mais uma solução fácil de entender :)
fonte
Mais rápido do que usar regex ...
Edição:
Talvez no momento em que eu fiz esse código, não usei o jsperf. Mas, no final, essa discussão é totalmente inútil, a diferença de desempenho não vale a legibilidade do código no mundo real; portanto, minha resposta ainda é válida, mesmo que o desempenho seja diferente da abordagem regex.
EDIT2:
Criei uma biblioteca que permite fazer isso usando uma interface fluente:
Vejo https://github.com/FagnerMartinsBrack/str-replace .
fonte
str.toLowerCase()
sair do circuito por razões de desempenho. Além disso, manipular a string que você está pesquisando provavelmente é menos do que ideal. Eufonte
Para esse cenário simples, eu também recomendaria usar os métodos que vêm embutidos em javascript.
Você pode tentar o seguinte:
saudações
fonte
Eu adiciono barra invertida dupla ao ponto para fazê-lo funcionar. Torcer.
fonte
Isso é mais conciso / legível e deve ter um desempenho melhor que o publicado por Fagner Brack (o toLowerCase não é executado em loop):
Uso:
fonte
fonte
replaceAll('&', '&')
:? (reconhecidamente que não é um caso em questão do OP)&
para que o loop nunca fique sem itens a serem substituídos (e a cadeia continua crescendo). Eu tentei apenas agora e trancado meu navegador ...Aqui está outra implementação de replaceAll. Espero que ajude alguém.
Então você pode usá-lo:
var myText = "Meu nome é George";
var newText = myText.replaceAll ("George", "Michael");
fonte
string.split(stringToFind).join(stringToReplace)
Exemplo: Desejo substituir todas as aspas duplas (") por aspas simples (') Então o código será assim
fonte
O @ scripto tornou-se um pouco mais conciso e sem
prototype
:Veja como ele se comporta : http://jsperf.com/replace-vs-split-join-vs-replaceall/68
fonte
fonte
fonte
você pode substituir toda a ocorrência de qualquer sequência / caractere usando o objeto javasscript RegExp.
Aqui está o código,
fonte
fonte
createTextNode