如何为javascript中的任何字符动态添加转义字符?

如何为javascript中的任何字符动态添加转义字符?,javascript,regex,escaping,Javascript,Regex,Escaping,我有p元素和一些文本。在HTML代码的文本中,我使用了一些“转义”字符,如\n、\?、\t等。当我在JS代码中获取字符串时,它被视为\\n、\?、\\t。我想将其替换为REAL转义字符,如下代码段所示 我想将字符串中的所有“\\char”更改为输出转义“\char” 当我分别替换所有字符(如下所示)时,它会起作用,但我想知道如何对文本中以\开头的所有字符执行一次 我需要这样的东西: .replace(/\\/,'\') .replace(/\\(.)/,'\$1') 或者像这样: .repl

我有p元素和一些文本。在HTML代码的文本中,我使用了一些“转义”字符,如\n、\?、\t等。当我在JS代码中获取字符串时,它被视为\\n、\?、\\t。我想将其替换为REAL转义字符,如下代码段所示

我想将字符串中的所有“\\char”更改为输出转义“\char”

当我分别替换所有字符(如下所示)时,它会起作用,但我想知道如何对文本中以\开头的所有字符执行一次

我需要这样的东西:

.replace(/\\/,'\')
.replace(/\\(.)/,'\$1')
或者像这样:

.replace(/\\/,'\')
.replace(/\\(.)/,'\$1')
但是它不起作用,因为斜杠\使下面的符号'$在代码中转义。除了使用\外,还有其他方法插入转义字符吗

var input=document.getElementById('sampInput');
var output=document.getElementById('sampOutput');
var parsedInput=input.innerHTML
.替换(/\\n/g,“\n”)
.替换(/\\t/g,“\t”)
.replace(/\\*/g,“*”)
.替换(/\?/g,,?);
output.innerHTML=parsedInput
p{
空白:预处理;
}
输入:

您好\n世界\n世界\n世界\n世界\n世界\n世界\n世界\n世界\n世界\n世界?字符和另一个\*字符

输出:

没有直接的方法来完成您的要求,但您可以编写一些代码来完成:

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;
});

如果您想额外解析
\unnn
转义,那就有点复杂了。

没有直接的方法来完成您的要求,但您可以编写一些代码来完成:

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;
});

如果您想额外解析
\unnn
转义,那就有点复杂了。

您希望
\*
\?
是什么意思?比如,你希望它是什么Unicode码点?它们不是标准的JavaScript转义码,比如
\t
\n
。是的,我知道。我只想获得与JS字符串
console.log(“some\*text\?sample”)中任何转义字符相同的效果\\一些*文本?样本
Pawle,
一些*文本?样本
=
“一些*文本?样本”
,您的字符串文本不包含文本反斜杠。您希望
\*
\?
是什么意思?比如,你希望它是什么Unicode码点?它们不是标准的JavaScript转义码,比如
\t
\n
。是的,我知道。我只想获得与JS字符串
console.log(“some\*text\?sample”)中任何转义字符相同的效果\\一些*文本?样本
Pawle,
一些*文本?样本
=
一些*文本?样本
,您的字符串文本不包含文本反斜杠。