我一直在浏览很多解决方案,但有些人为什么没有任何工作。
我需要将以下字符串"i:0#.w|dev\\tauri;"
替换为"i:0#.w|dev\tauri;"
我尝试过以下JS代码来替换:
s.replace(/\\\\/g, "\\$1");
s.replace(/\\\\/g, "\\");
但是没有结果。然而,我将\\
替换为"
s.replace(/\\/g, "\"");
为了表示敬意,那么我真的很困惑这个逻辑,似乎应该使用\\\\
进行双后退,但似乎仅使用\\
进行两次后退...
我需要这样做,以便比较当前的Sharepoint用户(i:0#.w|dev\tauri
)是否在列表中。
更新
好的,在我使用console.log();
后,我发现了一些有趣的东西。
Incode:var CurrentUser = "i:0#.w|dev\tauri";
和console.log():i:0#.w|dev auri
...
C#代码如下:
SPWeb theSite = SPControl.GetContextWeb(Context);
SPUser theUser = theSite.CurrentUser;
return theUser.LoginName;
答案 0 :(得分:1)
JavaScript strings need to be escaped所以如果你得到一个带有两个反斜杠的字符串文字,JavaScript会把它解释为一个。在你用来比较的字符串中,当你想要的是\ t时,你有\ t,这是一个制表符。我的猜测是,无论您从哪里获得当前的SharePoint用户,都会被正确转义,但您的比较列表却没有。
编辑:
或者反过来说。如果您使用的是.NET 4+ JavaScriptStringEncode可能会有所帮助。如果您仍然遇到问题,可能有助于向我们展示您如何进行比较。