今天想做一个功能用于识别地址得"/“或”",然发现识别"/“非常容易,识别” \ "却老是识别不上,
如图:
这时太突然记起来" \ “要转义,然后满心欢喜的用上了” \ \ ",
结果如图:
能识别上字符串的“\”,却无法识别上" \ ",
经过一番研究,导致这个问题的原因是系统先把字符串中的“ \ ”转义了,然后再做判断。
如:
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
页面会先把" \ "编译成 “” 再和编译后的结果做对比