簡體   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