Как глобально заменить косую черту в строке JavaScript?

Как глобально заменить косую черту в строке JavaScript?

Ответ 1

Следующее будет сделано, но только заменит одно событие:

"string".replace('/', 'ForwardSlash');

Для глобальной замены или если вы предпочитаете регулярные выражения, вам просто нужно избежать косой черты:

"string".replace(/\//g, 'ForwardSlash');

Ответ 2

Используйте литерал регулярного выражения с помощью модификатора g и избегайте косой черты с обратной косой чертой, чтобы она не сталкивалась с разделителями.

var str = 'some // slashes', replacement = '';
var replaced = str.replace(/\//g, replacement);

Ответ 3

Без использования регулярного выражения (хотя я бы сделал это только в том случае, если строка поиска введена пользователем):

var str = 'Hello/ world/ this has two slashes!';
alert(str.split('/').join(',')); // alerts 'Hello, world, this has two slashes!' 

Ответ 4

Это то, что вы хотите?

'string with / in it'.replace(/\//g, '\\');

Ответ 5

Это помогло мне превратить "//" в просто "/".

str.replace(/\/\//g, '/');

Ответ 6

Вам нужно обернуть косую черту во избежание проблем с перекрестным браузером или//комментирования.

str = 'this/that and/if';

var newstr = str.replace(/[/]/g, 'ForwardSlash');

Ответ 7

Привет, небольшая коррекция в приведенном выше script. выше script пропустить первый символ при отображении вывода.

function stripSlashes(x)
{
var y = "";
for(i = 0; i < x.length; i++)
{
    if(x.charAt(i) == "/")
    {
        y += "";
    }
    else
    {
        y+= x.charAt(i);
    }
}
return y;   
}

Ответ 8

var str = '/questions'; // input: "/questions"
while(str.indexOf('/') != -1){
   str = str.replace('/', 'http://stackoverflow.com/');
}
alert(str); // output: "http://stackoverflow.com/questions"

Предложенное регулярное выражение /\//g не работает для меня; остальная часть строки (//g, replacement);) была прокомментирована.

Ответ 9

Это идея Кристофера Линкольна, но с правильным кодом:

function replace(str,find,replace){
    if (find != ""){
        str = str.toString();
        var aStr = str.split(find);
        for(var i = 0; i < aStr.length; i++) {
            if (i > 0){
                str = str + replace + aStr[i];
            }else{
                str = aStr[i];
            }
        }
    }
    return str;
}

Пример использования:

var somevariable = replace('//\\\/\/sdfas/\/\/\\\////','\/sdf','replacethis\');

Глобальная замена строки в Javascript неоправданно сложна. Эта функция решает эту проблему. Возможно, влияние на производительность будет незначительным, но я уверен, что оно незначительное.

Вот альтернативная функция, выглядит намного чище, но в среднем примерно на 25–20 процентов медленнее, чем указанная выше функция:

function replace(str,find,replace){
    if (find !== ""){
        str = str.toString().split(find).join(replace);
    }
    return str;
}