我有以下 javascript 在大多数情况下都可以正常工作。它获取已登录到站点的用户并返回他们的 DOMAIN\username 信息。当用户名以完成有效转义字符的字母开头时(例如 DOMAIN\fname),就会出现问题。\f 被插值,各种可怕的事情发生了。我已经尝试了各种解决方法来尝试替换和/或转义/编码'\'。问题是 \f 似乎不能用于处理/匹配。被操作的字符串是 'DOMAINname'
// DOMAIN\myusername - this works fine
// DOMAIN\fusername - fails
var userName='<%= Request.ServerVariables("LOGON_USER")%>';
userName = userName.replace('DOMAIN','');
alert("Username: " + userName);
如果我尝试使用 userName 变量来解决问题,我也会看到各种奇怪的行为,我认为这可能是因为它包含隐藏的 \f。我到处寻找解决方案,找不到任何东西。试图找出我是否可以删除服务器端的 DOMAIN\ ,但这似乎也不可用。有没有人有解决方案或解决方法?在调试器中,服务器变量的初始值是正确的,但下一次立即调用该变量是错误的。所以调试器中的插值如下所示:
var userName='DOMAIN\fusername';
userName; // 'DOMAINusername' in debugger.
谢谢