我在删除Javascript中的斜杠时遇到了一些麻烦。
我通过JSON获得了一些HTML,需要摆脱逃避的斜杠。
这就是我现在拥有的东西,但似乎根本不起作用......
obj.embed_code = obj.embed_code.replace(/\\/g, '');
该对象中的HTML是来自YouTube的嵌入式iframe,但由于它有转义的引号,我最终得到的iframe中有一个404页面。
这样做的正确方法是什么?
以下是输出结果的示例......
<iframe width=\\\"420\\\" height=\\\"315\\\" src=\\\"http:\/\/www.youtube.com\/embed\/MD61itbPNEY\\\" frameborder=\\\"0\\\" allowfullscreen><\/iframe>
此外,这里是从中提取JSON的页面,因此您可以看到它看起来像原始的......
答案 0 :(得分:1)
如果数据是真正的JSON,那么正确的方式将是使用JSON解析器,因为JSON解析不仅仅是删除反斜杠。给出像
这样的东西{"content":"<p>CleverStuff\u2122<\/p>"}
JSON.parse(theData).content
会给你
<p>CleverStuff™</p>
答案 1 :(得分:0)
尝试
obj.embed_code = obj.embed_code.replace(/\\\//g, "/");
它与\/
匹配,因此您不会意外删除未转义的/
实例
答案 2 :(得分:-1)
您的JSON有效,我使用jsonlint.com进行了检查。
这应该清除embed_code:
obj.embed_code = obj.embed_code.replace(/\\\\\\"/g, '"').replace(/\\\//g, "/");
对我来说很好:
> var a = "width=\\\\\\\"420 src=\\\\\\\"http:\\/\\/www"
"width=\\\"420 src=\\\"http:\/\/www"
> a.replace(/\\\\\\"/g, '"').replace(/\\\//g, "/")
"width="420 src="http://wwww"
但我建议这样做:
$.getJSON('http://webiwave.com/includes/checkForButton.php?id=922', function (data){
console.log(data.embed_code.replace(/\\\"/g, '"') )
});
如果我在你的网页上运行这个,我会得到干净的HTML:
<iframe width="420" height="315" src="http://www.youtube.com/embed/MD61itbPNEY" frameborder="0" allowfullscreen></iframe>