Javascript 用单反斜杠替换双反斜杠
Javascript replacing double backslashed with single backslash
我一直在浏览很多解决方案,但不知何故没有任何工作。
我需要将以下字符串:"i:0#.w|dev\tauri;"
替换为 "i:0#.w|dev\tauri;"
我试过用下面的JS代码来替换:
s.replace(/\\/g, "\");
s.replace(/\\/g, "\");
但是一直没有结果。然而下面用 "
替换了我的 \
s.replace(/\/g, "\"");
老实说,我真的对这个逻辑感到困惑,似乎应该使用 \\
进行双反斜线处理,但它似乎只使用 \
进行两个反斜线处理..
我需要执行此操作以比较当前 Sharepoint 用户 (i:0#.w|dev\tauri
) 是否在列表中。
更新:
好的,我用了console.log();
之后,发现了一个有趣的东西
编码: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;
JavaScript strings need to be escaped 所以如果你得到一个带有两个反斜杠的字符串文字,JavaScript 将它解释为只有一个。在你用来比较的字符串中,你有 \t,这是一个制表符,而你可能想要的是 \\t。我的猜测是,无论您从何处获取当前 SharePoint 用户,它都会被正确转义,但您的比较列表却没有。
编辑:
或者反过来。如果您使用的是 .NET 4+ JavaScriptStringEncode 可能会有帮助。如果您仍然遇到问题,向我们展示您是如何进行比较的可能会有所帮助。
我一直在浏览很多解决方案,但不知何故没有任何工作。
我需要将以下字符串:"i:0#.w|dev\tauri;"
替换为 "i:0#.w|dev\tauri;"
我试过用下面的JS代码来替换:
s.replace(/\\/g, "\");
s.replace(/\\/g, "\");
但是一直没有结果。然而下面用 "
\
s.replace(/\/g, "\"");
老实说,我真的对这个逻辑感到困惑,似乎应该使用 \\
进行双反斜线处理,但它似乎只使用 \
进行两个反斜线处理..
我需要执行此操作以比较当前 Sharepoint 用户 (i:0#.w|dev\tauri
) 是否在列表中。
更新:
好的,我用了console.log();
之后,发现了一个有趣的东西
编码: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;
JavaScript strings need to be escaped 所以如果你得到一个带有两个反斜杠的字符串文字,JavaScript 将它解释为只有一个。在你用来比较的字符串中,你有 \t,这是一个制表符,而你可能想要的是 \\t。我的猜测是,无论您从何处获取当前 SharePoint 用户,它都会被正确转义,但您的比较列表却没有。
编辑:
或者反过来。如果您使用的是 .NET 4+ JavaScriptStringEncode 可能会有帮助。如果您仍然遇到问题,向我们展示您是如何进行比较的可能会有所帮助。