将regex存储在变量中的Javascript

时间:2009-09-15 15:08:21

标签: javascript regex

我在javascript中有这行代码

var re = (http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?

通常我使用/字符封装正则表达式语法,但由于它们是在正则表达式中找到的,因此它会破坏封装。有没有其他方法可以将它存储在变量中?

当前的斜杠似乎是转义字符是正则表达式的一部分,因为我在c#中使用它并且完美地工作

3 个答案:

答案 0 :(得分:18)

var re = new RegExp("^your regexp.*$", "gi");

答案 1 :(得分:7)

一种方法是将正则表达式中/所有次出现\/转义为var re = /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?/; ,就像你已经部分地做了一样:

{{1}}

答案 2 :(得分:1)

你可以逃避你的正则表达式中的斜杠:

/(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?/

(你已经用前两个斜线做了......)