2010-07-20 10 views
23

In PHP, Sie tun dies, um mehr als einen Wert auf einmal zu ersetzen.mehrere ersetzt durch Javascript

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

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

echo $newstring; 
?> 

Wie machen Sie das in Javascript?

+4

Es gibt bessere Antworten in einer anderen Frage auf Stackoverflow . Meiner Meinung nach sind die besten Antworten [hier] (http://stackoverflow.com/questions/15604140/replace-multiple-strings-with-multiple-other-strings) – CodeChops

Antwort

54

Verwenden Sie die Methode .replace() von javascript, die mehrere Ersetzungen zusammenstringt. dh:

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 genau das, was ich gesucht habe ... Ich war Ich beschäftige mich mit dynamischen Strings, so dass meins so etwas wie var exp = new RegExp (foo, 'g'); somestring.replace (exp, 'bar'); – afreeland

+0

Super sehr gute Lösung. –

11

Sie könnten tun:

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'; 
    }); 

oder:

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

var string = "jak har en mamma"; 

string = string.replace(/jak/g,'du').replace(/mamma/g,'pappa'); 
Verwandte Themen