我正在尝试从Sharepoint的restful API返回的JSON属性中获取用户名。
我收到的属性/字符串:"i:0#.w|xyz\tzzjjaa"
我想要的是什么:"xyz\tzzjjaa"
我试过:"i:0#.w|xyz\tzzjjaa".replace("\\","\\\\")
,它返回:
"i:0#.w|corproot tzzjjaa"
为什么会这样? (反斜杠是一种逃避字符串中“t”的东西吗?)
如何修复它才能获得"xyz\tzzjjaa"
?
非常感谢。 :)
答案 0 :(得分:2)
var str = String.raw`i:0#.w|xyz\tzzjjaa`;
console.log(str.split("|")[1]);
假设您希望使用String.raw函数保持反斜杠看a really good answer by T.J. Crowder,然后在管道上拆分字符串并获取结果数组的第二部分。
演示: https://jsfiddle.net/snjfveo6/
如果您不想使用反斜杠,可以删除String.raw部分并跳过拆分字符串。
答案 1 :(得分:0)
LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) leftView.getLayoutParams();
lp.width=newWidth;
leftView.setLayoutParams(lp);
leftView.requestLayout();
答案 2 :(得分:-1)
你确定它应该是"tzzjjaa"
吗?引用的字符串文字(或JSON字符串)中的\t
不是\
后跟t
,而是代表TAB(ASCII代码#09)字符!
答案 3 :(得分:-1)
\t
被转义为制表符。
我认为最好的解决方案是在服务器端逃避它。
在你的情况下,你将不得不编写一个小的服务器脚本,它调用你使用过的API并转换/转义所有内容,为你的JS做好准备。而你的JS称这个小服务器脚本。
如果您的用户名肯定永远不会以反斜杠后面的x开头,那么:
使用JNewtons's answer并使用String.raw
- 方法,或者更广泛的支持使用Stringify
方法Sathvik Cheela。
但如果在反斜杠之后有可能以x开头,那么你现在无法在JavaScript的前端解决这个问题 - 仅在后端