ほとんどの場合、正常に動作する次の 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.
ありがとう