Как заменить все символы в строке? - PullRequest
2 голосов
/ 30 ноября 2011

У меня есть строка, передаваемая параметром, и я должен заменить ее вхождение в другой строке, например:

function r(text, oldChar, newChar)
{
    return text.replace(oldChar, newChar); // , "g")
}

Передаваемые символы могут быть любой символ, включая ^, |, $, [, ], (, ) ...

Есть ли способ заменить, например, все ^ из строки I ^like^ potatoes на $?

Ответы [ 3 ]

9 голосов
/ 30 ноября 2011
function r(t, o, n) {
    return t.split(o).join(n);
}
1 голос
/ 30 ноября 2011

Если вы просто передаете '^' в функцию замены JavaScript, она должна рассматриваться как строка, а не как регулярное выражение.Однако, используя этот метод, он заменит только первый символ.Простое решение будет:

function r(text, oldChar, newChar)
{
    var replacedText = text;

    while(text.indexOf(oldChar) > -1)
    {
        replacedText = replacedText.replace(oldChar, newChar);
    }

    return replacedText;
}
0 голосов
/ 30 ноября 2011

Используйте объект RegExp вместо простой строки:

text.replace(new RegExp(oldChar, 'g'), newChar);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...