[英]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.