我当前正在加载 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/