【发布时间】:2017-01-03 16:33:01
【问题描述】:
我有带有一些文本的 p 元素。在 HTML 代码中的这段文本中,我使用了一些“转义”字符,例如 \n、\?、\t 等。当我得到JS 代码中的字符串,它被视为 \\n、\\?、\\t。我想在 sn-p 中将其替换为 REAL 转义字符,如下所示。
我想将字符串中的所有 "\\char" 更改为转义输出 "\char"。
当我分别替换所有字符时(如下所示)它可以工作,但我想知道如何一次为我的文本中以 \ 开头的所有字符执行此操作。
我需要这样的东西:
.replace(/\\/,'\')
或类似的东西:
.replace(/\\(.)/,'\$1')
但它不起作用,因为斜杠 \ 使以下符号 ' 或 $ 在代码中转义。除了使用 \ 之外,还有什么方法可以插入转义字符?
var input = document.getElementById('sampInput');
var output = document.getElementById('sampOutput');
var parsedInput = input.innerHTML
.replace(/\\n/g,'\n')
.replace(/\\t/g,'\t')
.replace(/\\\*/g,'*')
.replace(/\\\?/g,'?');
output.innerHTML = parsedInput;
p {
white-space:pre;
}
<h4>Input:</h4>
<p id="sampInput">hello\nworld\nhello\tworld\nsome \? character and another \* character</p>
<h4>Output:</h4>
<p id="sampOutput"></p>
【问题讨论】:
-
您认为
\*或\?是什么意思?比如,你希望它是什么 Unicode 代码点?它们不是标准的 JavaScript 转义码,例如\t和\n。 -
是的,我知道。我只想获得与 JS 字符串中的任何转义字符相同的效果
console.log("some\*text\?sample"); \\some*text?sample -
Pawle,
"some\*text\?sample"="some*text?sample",你的字符串文字不包含文字反斜杠。
标签: javascript regex escaping