【发布时间】:2015-12-23 06:09:49
【问题描述】:
在解决 aspx 中的问题时,我在设置 ASP.Net 会话变量的主干属性时卡住了。
我想设置一个属性,其值包含 '\u' 字符。喜欢
App.prop.set("Username",<%= Session.Name %>)
Session.Name 包含“john\udenver”作为值,当我将调试器放入 javascript 并检查它已正确转义为 \u 为“john\udenver”的值时
所以 Session.Name 已经具有“john\udenver”的转义值。
但是当它呈现并尝试将值分配给属性时,它正在转义 \u,并且我收到一个异常说“错误:预期的十六进制数字。”
我尝试使用“escape”方法逃脱
App.prop.set("Username", escape ("<%= Session.Name %>"))
但它抛出相同的异常,它呈现为
App.prop.set("Username", escape ("john\udenver"))
我认为在渲染页面时它会更改为“john\udenver”并引发异常。
其中一种解决方法是将 RegEx 检查放在 之前。
App.Prop.set("Username","<%= System.Text.RegularExpressions.Regex.Escape(Session.Name)%>");
但这似乎不是最干净的方法。 需要帮助在字符串中存在 \u 或 \x 的页面中设置和获取此属性。能否请教一下。
谢谢。
【问题讨论】:
标签: javascript c# asp.net regex backbone.js