3

我在删除 Javascript 中的斜杠时遇到了一些麻烦。

我通过 JSON 获得了一些 HTML,需要摆脱转义的斜杠。

这就是我现在所拥有的,但它似乎不起作用 - 根本......

obj.embed_code = obj.embed_code.replace(/\\/g, '');

该对象内的 HTML 是来自 YouTube 的嵌入 iframe,但由于它包含转义引号,因此我最终得到了一个包含 404 页面的 iframe。

这样做的正确方法是什么?

这是输出的示例...

<iframe width=\\\"420\\\" height=\\\"315\\\" src=\\\"http:\/\/www.youtube.com\/embed\/MD61itbPNEY\\\" frameborder=\\\"0\\\" allowfullscreen><\/iframe>

此外,这是从中提取 JSON 的页面,因此您可以看到它看起来像什么原始的......

http://bit.ly/UxuvfL

4

3 回答 3

1

如果数据是真正的 JSON,那么正确的方法是使用 JSON 解析器,因为 JSON 解析不仅仅是删除反斜杠。鉴于类似

{"content":"<p>CleverStuff\u2122<\/p>"}

JSON.parse(theData).content会给你

<p>CleverStuff™&lt;/p>
于 2012-10-23T15:30:03.880 回答
0

尝试

obj.embed_code = obj.embed_code.replace(/\\\//g, "/");

它匹配\/,因此您不会意外删除未转义的实例/

于 2012-10-23T15:18:28.403 回答
-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>
于 2012-10-23T15:16:00.733 回答