我想将所有斜杠更改为一个字符串,但我找不到解决方案。 这是我的代码:
var str = 'some\stack\overflow',
replacement = '/';
var replaced = str.replace("\", "/");
console.log(replaced);
console.log("I want to see this: some/stack/overflow");
答案 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”);