我正在从ASP.net <%=HttpContext.Current.User.Identity.Name%>设置javascript变量
var username = '<%=HttpContext.Current.User.Identity.Name%>';输出“域名”
基本上,它取出反斜杠和用户名的第一个字母。为什么要移除这两个字符?
发布于 2017-10-05 16:07:02
你所做的实际上是在做这样的事:
var username = 'domain\username';\u被视为JavaScript字符串中的转义序列。根据用户名的实际情况,您将看到不同的结果,从换行符到制表符,再到语法错误。
您需要使用类似于HttpUtility.JavaScriptStringEncode的东西在服务器上正确地编码它。
var username = '<%=HttpUtility.JavaScriptStringEncode(HttpContext.Current.User.Identity.Name)%>';发布于 2017-10-05 16:05:09
在JS (任何其他语言)中,\在一个具有特殊角色的字符串中使用,称为转义字符。您需要使用\\获取字符串中的\,在控制台中测试它:
console.log("\");
console.log("\\");这是你如何形成特殊的字符,如\n,用于换行,等等。
我认为这些都是在JS中使用转义字符的情况:
\' single quote
\" double quote
\\ backslash
\b Backspace
\r Carriage Return
\f Form Feed
\t Horizontal Tabulator
\v Vertical Tabulator长话短说,JS认为\character是字符串中的一个符号(而不是\和后面的字符),\\表示\。
https://stackoverflow.com/questions/46590126
复制相似问题