0

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

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

提琴手

4

5 回答 5

2

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

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

var replaced = str.replace(regex, '/');
于 2013-09-18T07:46:28.457 回答
0

除了使用正则表达式替换每一个出现之外,不仅仅是这里描述的第一个 (所以,使用str.replace(/\\/g, "/");

您需要先修复字符串,然后再将其传递给 JavaScript。

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

"s\tackoverflow" == "s    ackoverflow"

"stackove\rflow" == "stackove
flow"

"\s" 和 "\o" 只是碰巧没有什么特别的意思。

于 2013-09-18T07:49:56.537 回答
0
var str = 'some\\stack\overflow'

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

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

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

var replaced = str.replace(/\\/g, "/");
于 2013-09-18T07:50:30.480 回答
0

出色地,

str只包含一个\\组,你只尝试替换\\所以通常会看到类似的东西some/stackoverflow,所以你的代码是:

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

并且str必须是

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

然后将起作用

于 2013-09-18T07:50:59.253 回答
0

尝试这样的事情:

var str = '一些\堆栈\溢出';

替换 = '/';

替换 = str.replace("\", "/");

控制台.log(替换);

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

于 2014-01-13T06:16:42.453 回答