Fra*_*kie 36 javascript replace backslash
这是我的字符串:
var str = "This is my \string";
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
var replaced = str.replace("/\\/", "\\\\");
Run Code Online (Sandbox Code Playgroud)
我无法得到我的输出:
"This is my \\string"
Run Code Online (Sandbox Code Playgroud)
我已经尝试了我能想到的正则表达式和替换值的每个组合.
任何帮助表示赞赏!
小智 42
多年来一直难以理解,并且所有答案一直坚持要求源字符串已经在其中转义了反斜杠......但情况并非总是如此.
做这个 ..
var replaced = str.replace(String.fromCharCode(92),String.fromCharCode(92,92));
Run Code Online (Sandbox Code Playgroud)
Que*_*tin 34
该字符串不包含反斜杠,它包含\s转义序列.
var str = "This is my \\string";
Run Code Online (Sandbox Code Playgroud)
如果你想要一个正则表达式,你应该有一个正则表达式,而不是一个字符串.
var replaced = str.replace(/\\/, "\\\\");
Run Code Online (Sandbox Code Playgroud)
问题是你的第一行中的\甚至都没有被识别出来.它认为反斜杠将标记一个转义序列,但\ s不是转义字符,所以它被忽略了.你的var str被解释为"这是我的字符串".尝试str.indexOf("\\")- 你会发现它是-1,因为根本没有反斜杠.如果您控制str的内容,请执行大卫所说的内容 - 添加另一个\以逃避第一个.
小智 8
var a = String.raw`This is my \string`.replace(/\\/g,"\\\\");
console.log(a);Run Code Online (Sandbox Code Playgroud)
结果:
This is my \\string
Run Code Online (Sandbox Code Playgroud)
如果您有多个实例或反斜杠:
str.split(String.fromCharCode(92)).join(String.fromCharCode(92,92))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
75494 次 |
| 最近记录: |