谁可以帮我说明下这个正则是什么意思?/%url%/

不好意思,提问的不够好,先上源码

document.write('<iframe frameborder="0" scrolling="no" src="http://hits.sinajs.cn/A1/weiboshare.html?url=%url%&appkey=&type=3" width="16" height="16"></iframe>'.replace(/%url%/, encodeURIComponent(location.href)));

一个分享微博的功能,我理解不了这句。

replace(/%url%/, encodeURIComponent(location.href))

/%url%/到底替换了什么?

阅读 2.8k
3 个回答

/ 转义符为 %2F
% 转义符为 %25
所以

var str = '%2F%25url%25%2F';
var reg = /%url%/;
reg.test(str)

转义后等价于

var str = '/%url%/';
var reg = /%url%/;
reg.test(str)

location.href就是当前页面的链接,然后URI编码一下,整个的意思就是把iframe里的src的参数的第一个替换为url=当前链接的URI编码,例如,现在的页面:

<iframe frameborder="0" scrolling="no" src="http://hits.sinajs.cn/A1/weiboshare.html?url=https%3A%2F%2Fsegmentfault.com%2Fq%2F1010000008203094%2Fa-1020000008203213%2Fedit&appkey=&type=3" width="16" height="16"></iframe>

做了一个宏替换
将location.ref encode之后,替换掉%url%宏

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题