tags:

views:

310

answers:

2
<?php
function toconv(string)
{
    $gogo = array("a" => "b","cd" => "e");
    $string = str_replace(
        array_keys( $gogo ),
        array_values( $gogo ),
        $string
    );
    return $string;
}
?>

How can I implement that in JavaScript?

+2  A: 

String.replace() in Javascript receives regexes instead of strings and here's a translation. You need to append the g modifier to the regex to replace all occurrences instead of only the first one.

<script>
function toconv(str) {
    replacements = ['b','e'];
    regexes = [/a/g,/cd/g];

    for (i=0; i < regexes.length; i++) {
       str = str.replace(regexes[i],replacements[i]);
    }
    return str;
}

alert(toconv('acdacd'));
alert(toconv('foobar'));
</script>
Vinko Vrsalovic
+4  A: 

And to make it in a way, where you can do it directly from an array:

<script type="text/javascript">
function toconv(string){
    var gogo = {"a":"b", "cd":"e"}, reg;
    for(x in gogo) {
        reg = new RegExp(x, "g");
        string.replace(x, gogo[x]);
    }
    return string;
}
</script>
roenving
Thanks for the edit, nickf, I clearly missed the return-value !-)
roenving