Maison  >  Article  >  interface Web  >  js utilise des expressions régulières pour implémenter les compétences de remplacement de ReplaceAll method_javascript

js utilise des expressions régulières pour implémenter les compétences de remplacement de ReplaceAll method_javascript

WBOY
WBOYoriginal
2016-05-16 16:39:052347parcourir

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

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn