在javascript中删除逃脱

时间:2014-11-26 04:01:24

标签: javascript escaping slash

function slashEscape(strVar){
    var retVal = strVar;
    retVal = retVal.replace(/\\/g,"\\\\");
    return retVal;
}

我使用该函数来转义某个字符串中的斜杠。但结果不对。

var str = slashEscape("\t \n \s");

这将导致" s"而不是" \ t \ n \ s"

2 个答案:

答案 0 :(得分:4)

当字符串常量"\t \n \s" 实例化到JavaScript字符串时,它会将\t转换为制表符,将\n转换为新行,并且\ss

这就是为什么你不能用\替换\\的原因,因为就JavaScript而言,没有\个字符。只有标签字符,新行和s


顺便说一下,slashEscape("\t \n \s");的结果是不是 "s"。 实际上是:

"    
s"

第一行中的选项卡是新行,然后是s。

答案 1 :(得分:0)

要添加Mark Gabriel已经说过的内容,它是解析器,而不是任何运行时代码,它可以转换字符串中的转义序列。当字符串传递给您的函数时,解析器已经删除了反斜杠 - 它们不存在。