繁体   English   中英

在javascript中删除逃脱

[英]Slash escape in javascript

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

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

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

这将导致“s”而不是“\\ t \\ n \\ s”

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

这就是为什么你不能替换\\\\\\因为就如JavaScript而言,没有任何\\字符。 只有制表符,新行和s


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

"    
s"

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM