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