1. 程式人生 > >“\”轉義符相關-js會先執行轉義再執行後續操作

“\”轉義符相關-js會先執行轉義再執行後續操作

今天想做一個功能用於識別地址得"/“或”",然發現識別"/“非常容易,識別” \ "卻老是識別不上,

如圖在這裡插入圖片描述

這時太突然記起來" \ “要轉義,然後滿心歡喜的用上了” \ \ ",

結果如圖在這裡插入圖片描述

能識別上字串的“\”,卻無法識別上" \ ",

經過一番研究,導致這個問題的原因是系統先把字串中的“ \ ”轉義了,然後再做判斷。 如:

var a = "a\bb\\cc"; // a實際等於“abb\cc”
a.indexOf("\\");    // 3

然後我又做了另外一番測試,從html直接讀取字串,卻能識別上

html

<span id="b">\</span>

js

$("#b"
.html(); // "\" var b = $("#b".html(); b.indexOf("\\"); // 0

結果從而得出,$("#b").html()得出的結果實際是編譯後的結果,等同於上面例子編譯後的"abb\cc"。為了證明我的猜想,然後試了一下,果然如此。

$("#b".html() == "\\" // true

頁面會先把" \ "編譯成 “” 再和編譯後的結果做對比