从javascript中的字符串中删除“\”

时间:2012-10-23 15:13:04

标签: javascript json

我在删除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的页面,因此您可以看到它看起来像原始的......

http://bit.ly/UxuvfL

3 个答案:

答案 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>