Asp for JScript圈套之一:字符转义

Asp for JScript陷阱之一:字符转义

错误用法:

Asp for JScript圈套之一:字符转义
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>
<%
    var path1="C:\mydir\img";
    var path2="C:\\mydir\\img";
%>
<html>
<head>
     <script>
           var i="<%=path1%>";
           var j="<%=path2%>";
           alert(i); //输出C:mydirimg
           alert(j); //输出C:mydirimg
     </script>
</head>
</html>
Asp for JScript圈套之一:字符转义

原因:
因为i得到的是path1输出的值,而 \ 是转义字符 所以i实际得到的值是C:mydirimg,而
j虽然得到的值是C:\mydir\img,但j仍然是一个js变量,所以 \ 还是转义字符。剖开来看就像这样子:

Asp for JScript圈套之一:字符转义
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>
<%
    var path1="C:\mydir\img";
    var path2="C:\\mydir\\img";
%>
<html>
<head>
     <script>
           var i="C:mydirimg";     //i="<%=path1%>";
           var j="C:\mydir\img";  //"<%=path1%>";
           alert(i); //输出C:mydirimg
           alert(j); //输出C:mydirimg
     </script>
</head>
</html>
Asp for JScript圈套之一:字符转义

正确用法:

Asp for JScript圈套之一:字符转义
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%>
<%
    var path1="C:\\\\mydir\\\\img";
%>
<html>
<head>
     <script>
           var i="<%=path1%>";
           alert(i); //输出C:\mydir\img
     </script>
</head>
</html>
Asp for JScript圈套之一:字符转义