Je veux remplacer toutes les occurrences d'un point ( .
) dans une chaîne JavaScript
Par exemple, j'ai:
var mystring = 'okay.this.is.a.string';
Je veux obtenir: okay this is a string
.
Jusqu'à présent, j'ai essayé:
mystring.replace(/./g,' ')
mais cela se termine avec toute la chaîne remplacée par des espaces.
javascript
string
replace
Omar Abid
la source
la source
Réponses:
Vous devez échapper au
.
car il a la signification d'un "caractère arbitraire" dans une expression régulière.la source
g
modificateur à la fin de l'expression. Considérez-le comme (g) lobalement.Encore une solution facile à comprendre :)
la source
Plus rapide que l'utilisation de l'expression régulière ...
EDIT:
Peut - être qu'au moment où j'ai fait ce code, je n'ai pas utilisé jsperf. Mais au final, une telle discussion est totalement inutile, la différence de performances ne vaut pas la lisibilité du code dans le monde réel, donc ma réponse est toujours valable, même si les performances diffèrent de l'approche regex.
EDIT2:
J'ai créé une bibliothèque qui vous permet de le faire en utilisant une interface fluide:
Voir https://github.com/FagnerMartinsBrack/str-replace .
la source
str.toLowerCase()
sortir de la boucle pour des raisons de performances. De plus, la manipulation de la chaîne que vous recherchez est probablement moins qu'optimale. J'ai posté une réponse avec une version modifiée: stackoverflow.com/questions/2390789/…la source
Pour ce scénario simple, je recommanderais également d'utiliser les méthodes fournies avec le javascript.
Vous pouvez essayer ceci:
Salutations
la source
J'ajoute une double barre oblique inverse au point pour le faire fonctionner. Acclamation.
la source
Ceci est plus concis / lisible et devrait fonctionner mieux que celui publié par Fagner Brack (toLowerCase non exécuté en boucle):
Usage:
la source
la source
replaceAll('&', '&')
:? (certes, ce n'est pas un cas dans la question du PO)&
afin que la boucle ne manque jamais de choses à remplacer (et la chaîne continue de croître). Je l'ai essayé tout à l'heure et il a verrouillé mon navigateur ...Voici une autre implémentation de replaceAll. J'espère que cela aide quelqu'un.
Ensuite, vous pouvez l'utiliser:
var myText = "Je m'appelle George";
var newText = myText.replaceAll ("George", "Michael");
la source
string.split(stringToFind).join(stringToReplace)
Exemple: je veux remplacer tous les guillemets doubles (") en guillemets simples (') Ensuite, le code sera comme ceci
la source
@ scripto est un peu plus concis et sans
prototype
:Voici comment cela se cumule: http://jsperf.com/replace-vs-split-join-vs-replaceall/68
la source
la source
la source
vous pouvez remplacer toutes les occurrences de n'importe quelle chaîne / caractère à l'aide de l'objet javasscript RegExp.
Voici le code,
la source
la source
createTextNode