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