我的 p 元素包含一些文字。在HTML代码的本文中,我使用了一些" escape"字符如 \ n , \?, \ t 等。当我在JS代码中获取字符串时,它被视为 \\ n , \\?, \\ t 。我想将其替换为 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>
&#13;
答案 0 :(得分:1)
没有直接的方法来做你要求的事情,但你可以写一些代码来做:
var charmap = {
n: "\n",
r: "\r",
f: "\f",
t: "\t",
b: "\b"
};
var replaced = string.replace(/\\(.)/g, function(_, char) {
return (char in charmap) ? charmap[char] : char;
});
如果你想要另外解析\uNNNN
转义,那就更复杂了。