Javascript:
var str = 'som\\//kdshn/jasdj/\akdjsl/kas\asd';
var newstr = str.replace(/(\\|\/)/g,function(a, m) { return m == "/" ? "\\" : "//"; });
结果:
som//\\kdshn\jasdj\akdjsl\kasasd
。
结果反斜杠被转义了。如何处理?
答案 0 :(得分:1)
您使用"//"
将斜杠加倍。
如果将单个反斜杠与正斜杠互换,则"/"
可以。
使用
var newstr = str.replace(/[\\\/]/g,function(a) { return a == "/" ? "\\" : "/"; });
它产生som/\\kdshn\jasdj\akdjsl\kasasd
。
var str = 'som\\//kdshn/jasdj/\akdjsl/kas\asd';
var newstr = str.replace(/[\\\/]/g,function(a) { return a == "/" ? "\\" : "/"; });
console.log(newstr);
答案 1 :(得分:1)
实际上发生的是,您的反斜杠变为正斜杠,然后将其计算为ASCII字符。
例如:
var test = "foo\bar\foobar"
成为
"fooaroobar"
那是因为\ b和\ f不存在。
您应该这样做:
var test = "foo\\bar\\foobar"
使用正斜杠;)