.replace()函数不会用反斜杠替换正斜杠

时间:2013-09-18 07:32:10

标签: javascript string replace

我想将所有斜杠更改为一个字符串,但我找不到解决方案。 这是我的代码:

var str = 'some\stack\overflow', 
replacement = '/';
var replaced = str.replace("\", "/");
console.log(replaced);
console.log("I want to see this: some/stack/overflow");

Jsfiddle

5 个答案:

答案 0 :(得分:2)

尝试使用global(g)标志的正则表达式。

var str = 'some\\stack\\overflow';
var regex = /\\/g;

var replaced = str.replace(regex, '/');

答案 1 :(得分:0)

除了使用正则表达式替换每个匹配项,而不仅仅是所描述的第一个匹配项here (所以,使用str.replace(/\\/g, "/");

您需要在将字符串传递给JavaScript之前修复它。

"some\stack\overflow"将被解释为"somestackoverflow""\s" and "\o"被视为转义序列,而不是“斜杠字母”,因此该字符串实际上没有任何斜杠。您需要"some\\stack\\overflow"。为什么?这就是原因:

"s\tackoverflow" == "s    ackoverflow"

"stackove\rflow" == "stackove
flow"

“\ s”和“\ o”恰巧并不意味着什么特别的。

答案 2 :(得分:0)

var str = 'some\\stack\overflow'

^^这是不正确的。更正的字符串是 -

var str = 'some\\stack\\overflow'

另外,使用全局正则表达式。

var replaced = str.replace(/\\/g, "/");

答案 3 :(得分:0)

那么,

您的str只包含一个\\群组,您尝试仅替换\\,因此通常会看到类似some/stackoverflow的内容,因此您的代码为:

var str = 'some\\stack\overflow' // your code 

str必须

var str = 'some\\stack\\overflow'

然后将起作用

答案 4 :(得分:0)

尝试这样的事:

  

var str ='some \ stack \ overflow';

     

replacement ='/';

     

replacement = str.replace(“\”,“/”);

     

的console.log(取代);

     

console.log(“我想看到这个:some / stack / overflow”);