javascript - 小书签中的字符串操作与控制台中的行为不同

标签 javascript regex string google-chrome bookmarklet

在 Google Chrome 控制台中,这有效(它说弹出窗口被阻止,但现在不要介意)

open('http://www.bugmenot.com/view/'+(escape(location).replace(/^\w+%3a\/\//i,'').replace(/\/.*/i,'')));

弹出窗口在 http://www.bugmenot.com/view/thesite.com

打开

现在,这不能用作小书签:

javascript:open('http://www.bugmenot.com/view/'+(escape(location).replace(/^\w+%3a\/\//i,'').replace(/\/.*/i,'')));

它不会打开完全相同的 URL,而是打开 http://www.bugmenot.com/view/http%3A

为什么?

最佳答案

试试这个:

javascript:open('http://www.bugmenot.com/view/'+(escape(location).replace(/^.*?\/\/([^\/]*).*$/i, "$1")));

关于javascript - 小书签中的字符串操作与控制台中的行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11621474/

相关文章:

javascript - 固定的全高侧边栏(宽度/位置可变)

javascript - 更新 td 标签内的背景色 jquery 输入

c# - 在 C# 中,检查 stringbuilder 是否包含子字符串的最佳方法

c - 替换 C 中字符串中所有出现的子字符串

asp.net - 在 UpdatePanel 更新后注册动态 javascript

javascript - 如何在 chrome 和 firefox 中右键单击禁用/启用复选框

javascript - 缩小以在窗口内垂直放置一个 div

c# - 替换sql文件的最佳步骤

regex - 网络掩码验证似乎无法在 bash 脚本中使用正则表达式,而 ip 验证工作正常

javascript - 如何基于字符串对对象进行操作