使用C#.net我正在使用其中的部分html / javascript解析一些数据(我不知道是谁做出了这个决定)我需要提取一个链接。链接看起来像这样
http:\/\/fc0.site.net\/fs50\/i\/2009\/name.jpg
它来自于我认为是javascript并且看起来像json
"name":{"id":"589","src":"http:\/\/fc0.site.net\/fs50\/i\/2009\/name.jpg"}
但无论如何我应该如何逃避第一个链接 http://fc0.site.net/fs50/i/2009/name.jpg
在这种情况下,我可以用''替换'\',因为链接不包含\也不是“所以我可以做到这一点,但我是一个知道正确的解决方案和正确做事的粉丝。所以我怎么能逃避这一点。看了那个链接一分钟之后,我认为是有效的?java脚本或者json转义/使用\?看起来不应该这样吗?
答案 0 :(得分:1)
在你的情况下:
"name":{"id":"589","src":"http://fc0.site.net/fs50/i/2009/name.jpg"}
“/”是有效的转义序列。但是,不需要/被转义。如果需要,你可以逃避它。 JSON明确允许转义斜杠的原因是因为HTML不允许a中的字符串包含“...
<强>更新强>
答案 1 :(得分:0)
奇怪的是,它看起来不像你期望的任何JavaScript / JSON逃脱。你可以在JavaScript字符串中使用正斜杠。
答案 2 :(得分:0)
为什么不尝试使用转义斜杠的正则表达式来替换它们在C#代码中...
String url = @"http:\/\/fc0.site.net\/fs50\/i\/2009\/name.jpg";
String pattern = @"\\/";
String cleanUrl = Regex.Replace(url, pattern, "/");
希望它有所帮助!
答案 3 :(得分:0)
实际上你想 unescape 字符串。在this question回答。