2010-07-20 7 views
23

En PHP, vous faites cela pour remplacer plus d'une valeur à la fois.plusieurs remplace par javascript

<?php 
$string = "i am the foobar"; 

$newstring = str_replace(array('i', 'the'), array('you', 'a'), $string); 

echo $newstring; 
?> 

Comment faites-vous ceci en javascript?

+4

Il y a de meilleures réponses à une autre question sur Stackoverflow . À mon avis les meilleures réponses sont [ici] (http://stackoverflow.com/questions/15604140/replace-multiple-strings-with-multiple-other-strings) – CodeChops

Répondre

54

Utilisez la méthode .replace() de javascript, en enchaînant plusieurs remplacements ensemble. à savoir:

var somestring = "foo is an awesome foo bar foo foo"; //somestring lowercase 
var replaced = somestring.replace(/foo/g, "bar").replace(/is/g, "or"); 
// replaced now contains: "bar or an awesome bar bar bar bar" 
+0

Excellent juste ce que je cherchais ... j'étais traitant des chaînes dynamiques, la mienne a fini par ressembler à quelque chose comme var exp = new RegExp (foo, 'g'); somestring.replace (exp, 'barre'); – afreeland

+0

Impressionnant très bonne solution. –

11

Vous pourriez faire:

http://jsfiddle.net/ugKRr/

var string = "jak har en mamma"; 

string = string.replace(/(jak)|(mamma)/g,function(str,p1,p2) { 
     if(p1) return 'du'; 
     if(p2) return 'pappa'; 
    }); 

ou:

http://jsfiddle.net/ugKRr/2/

var string = "jak har en mamma"; 

string = string.replace(/jak/g,'du').replace(/mamma/g,'pappa'); 
Questions connexes