【发布时间】:2015-01-04 06:58:03
【问题描述】:
我浏览了很多解决方案,但为什么没有任何工作。
我需要用"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;
【问题讨论】:
-
如果前两个什么都不做,并且
s.replace(/\\/g, "\"");用一个"替换了你的\\,那么你的字符串中只有一个反斜杠开头。不要将您在调试器中看到的内容与字符串中反斜杠的实际数量相混淆。 -
但问题是,即使我不尝试替换,那么比较两个字符串仍然是错误的
-
分号与它有什么关系,还是那些错字?请这样做:用你要修改的字符串做一个
console.log(),用你要匹配的字符串做一个console.log(),观察它们之间是否有任何区别。 -
看看我的回答。那是因为 \t 是选项卡的转义码。
标签: javascript replace