Javascript用单反斜杠替换双反斜杠

时间:2015-01-03 18:15:37

标签: javascript replace

我一直在浏览很多解决方案,但有些人为什么没有任何工作。

我需要将以下字符串"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;

1 个答案:

答案 0 :(得分:1)

JavaScript strings need to be escaped所以如果你得到一个带有两个反斜杠的字符串文字,JavaScript会把它解释为一个。在你用来比较的字符串中,当你想要的是\ t时,你有\ t,这是一个制表符。我的猜测是,无论您从哪里获得当前的SharePoint用户,都会被正确转义,但您的比较列表却没有。

编辑:

或者反过来说。如果您使用的是.NET 4+ JavaScriptStringEncode可能会有所帮助。如果您仍然遇到问题,可能有助于向我们展示您如何进行比较。