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

标签 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>"

希望能帮助您尝试用尽可能少的代码来解决这个问题,而无需使用一些疯狂的正则表达式。

最佳答案

去除decodeURI之前的空格。

“坏”模式似乎是转义空格后跟空格、冒号、空格和转义空格,因此请使用以下正则表达式:

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

关于JavaScript:使用decodeUri或unescape不会删除空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27497152/

相关文章:

javascript - jQuery 获取父对象

regex - sed 从 ip 中删除前两个八位字节

javascript - 关于谷歌标签管理器

regex - 使用 grep 或其他方式匹配数字 1 而不是 10 或 11

c++ - 简单的正则表达式似乎不工作 C++

JavaScript 日期和时间显示错误

javascript - 如何在 Cordova PhoneGap 应用程序中打开设置-> iPhone 的隐私

javascript - 在 AngularJS 中对表列进行排序

javascript - 从数组中检索信息并以 html 形式显示的最快方法

javascript - 在浏览器上存储一个 css 类