Les chaînes JS ont la méthode replace(). Mais cette méthode ne remplacera que la première chaîne correspondante. Par exemple :
<HTML> <HEAD> <TITLE> New Document </TITLE> </HEAD> <BODY> <script> var str = "wordwordwordword"; var strNew = str.replace("word","Excel"); alert(strNew); </script> </BODY> </HTML>
Si vous souhaitez tout remplacer, JS ne fournit pas de méthode comme replaceAll. L'effet de Remplacer peut être obtenu à l'aide de tableaux normaux :
str.replace(/word/g,"Excel")
g signifie : effectuer une correspondance globale (trouver toutes les correspondances au lieu de s'arrêter après avoir trouvé la première correspondance).
<HEAD> <TITLE> New Document </TITLE> <script> function replaceAll(str) { if(str!=null) str = str.replace(/word/g,"Excel") return str; } </script> </HEAD> <BODY> <script> var str = "wordwordwordword"; var strNew = str.replace("word","Excel"); strNew = replaceAll(str); alert(strNew); </script> </BODY> </HTML>
La méthode d'écriture ci-dessus a une méthode d'écriture similaire :
str.replace(new RegExp("word","gm"),"Excel")
g effectue une correspondance globale (trouve toutes les correspondances au lieu de s'arrêter une fois la première correspondance trouvée).
m effectue une correspondance multi-lignes.
De plus, vous pouvez également ajouter la méthode prototype de l'objet Stirng :
String.prototype.replaceAll = function(s1,s2){ return this.replace(new RegExp(s1,"gm"),s2); }
De cette façon, vous pouvez utiliser replaceAll comme si vous utilisiez la méthode replace
str.replaceAll("word","Excel");
Pour résumer, il existe trois manières
1. str.replace(/oldString/g,newString)
2. str.replace(new RegExp(oldString,"gm"),newString)
3. Ajouter la méthode de prototype d'objet String replaceAll