Как глобально заменить косую черту в строке 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;
}