JavaScript:使用decodeUri或unescape不会删除空格

时间:2014-12-16 03:39:59

标签: javascript jquery regex

我正在加载WSYWIG编辑器并直接从数据库中读取HTML代码。

var html = "%3Cp%3E%3Ca%20href=%22google%20 : %20//in-app.purchase%22%3E%3Cimg%20src=%22https%20 : %20//uploads/28/content_drawadragon.png%22%20style=%22height%20 : %20100%25;%20width%20 : %20100%25%22%20/%3E%3C/a%3E%3C/p%3E%0D%0A"

但是,使用decodeURI(html)会产生以下结果:

"<p><a href="google :  //in-app.purchase"><img src="https  :  //uploads/28/content_drawadragon.png" style="height  :  100%; width  :  100%" /></a></p>"

我真正喜欢的是:

decodeURI(html) = "<p><a href="google://in-app.purchase"><img src="https: //uploads/28/content_drawadragon.png" style="height:100%;width:100%"/></a></p>"

如果没有一些疯狂的正则表达式,爱会帮助尝试用尽可能少的代码来解决这个问题。

1 个答案:

答案 0 :(得分:1)

在decodeURI之前删除空格。

“坏”模式似乎是一个逃逸的空间,后跟空格,冒号,空格和转义空间,所以请使用此正则表达式:

decodeURI(html.replace(/%20 : %20/g, ":"))