javascript - Firefox 扩展如何将字符串类型变量传递给 javascript 替换正则表达式参数?

标签 javascript regex firefox firefox-addon

我已经在 firefox 扩展上工作了好几天了,有一件事我无法解决。

我生成了一个正则表达式列表,我想将该字符串传递给 javascript 中的替换函数(在正则表达式参数中)。这是字符串的示例:

/(https?:\/\/(www\.)?rapidgator\.net\b([-a-zA-Z0-9@:%_\+.~#?&//=]*))/g
/(https?:\/\/(www\.)?ul\.to\b([-a-zA-Z0-9@:%_\+.~#?&//=]*))/g
/(https?:\/\/(www\.)?uploadable\.ch\b([-a-zA-Z0-9@:%_\+.~#?&//=]*))/g
/(https?:\/\/(www\.)?180upload\.com\b([-a-zA-Z0-9@:%_\+.~#?&//=]*))/g

为了方便起见,我们就这样吧。我设法获取文件并获取字符串的第一行并将其分配给变量:

var rapidgator = "/(https?:\/\/(www\.)?rapidgator\.net\b([-a-zA-Z0-9@:%_\+.~#?&//=]*))/g";

我希望字符串是这样的“替换参数”:

var rep = rep.replace(rapidgator,"<a href='$1'>$1</a>");

但我无法完成这项工作。

我一直在尝试使用 RegExp 对象,但没有成功。

var rapidgator = new RegExp("(https?:\/\/(www\.)?rapidgator\.net\b([-a-zA-Z0-9@:%_\+.~#?&//=]*))", "g");

如何让它发挥作用?谢谢你的建议:)

最佳答案

如果您可以获得正则表达式,为什么不让它保留为正则表达式文字?

var rapidgator = /(https?:\/\/(www\.)?rapidgator\.net\b([-a-zA-Z0-9@:%_\+.~#?&//=]*))/g;

如果你想通过 RegExp 构造函数实现它,确保你用另一个反斜杠转义 \ 并且你不需要分隔符并且第二个参数接受标志。

var rapidgator = new RegExp("(https?:\\/\\/(www\\.)?rapidgator\\.net\\b([-a-zA-Z0-9@:%_\+.~#?&//=]*))","g")

关于javascript - Firefox 扩展如何将字符串类型变量传递给 javascript 替换正则表达式参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27354277/

相关文章:

javascript - 用户名输入 If Else block 无法正常工作/Javascript - jQuery - AJAX

javascript - 如何在高阶函数中绑定(bind)函数引用?组合优于继承

Javascript:变量范围问题

php - 正则表达式中字母 "~"的含义

javascript - 如何使用正则表达式将 url 路径与可选元素进行匹配

javascript - 将节点移动到 DOM 中的另一个位置后,Mouseenter 在 Firefox 中多次触发

javascript - 如何从 mozilla 附加组件使用页面的 jQuery 方法?

c# - 如何简化以下正则表达式

html - 使用 indexedDB 时出现错误 "Operation failed because the requested database object could not be found..."

javascript - geolocation.getCurrentPosition 晚上失败 -- 如何提供自己的 api key ?