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>
原因:
因为i得到的是path1输出的值,而 \ 是转义字符 所以i实际得到的值是C:mydirimg,而
j虽然得到的值是C:\mydir\img,但j仍然是一个js变量,所以 \ 还是转义字符。剖开来看就像这样子:
<%@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>
正确用法:
<%@LANGUAGE="JAVASCRIPT" CODEPAGE="65001"%> <% var path1="C:\\\\mydir\\\\img"; %> <html> <head> <script> var i="<%=path1%>"; alert(i); //输出C:\mydir\img </script> </head> </html>