在变量中存储正则表达式的Javascript

在变量中存储正则表达式的Javascript,javascript,regex,Javascript,Regex,我用javascript编写了这行代码 var re = (http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])? 通常我用/字符来封装regex语法,但由于它们在regex中找到,所以封装会出错。是否有其他方法可以将其存储在变量中 当前看起来像转义字符的斜杠是正则表达式的一部分,因为我在c#中也使用了它,并且工作得非常完美您可以在正则表达式中转义斜

我用javascript编写了这行代码

var re = (http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?
通常我用
/
字符来封装regex语法,但由于它们在regex中找到,所以封装会出错。是否有其他方法可以将其存储在变量中


当前看起来像转义字符的斜杠是正则表达式的一部分,因为我在c#中也使用了它,并且工作得非常完美

您可以在正则表达式中转义斜杠:

var re = new RegExp("^your regexp.*$", "gi");
/(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?/

(您已经在前两个斜杠中这样做了…

一种方法是将正则表达式中发生的
/
作为
\/
,像您已经部分地做的那样:

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

是怎么回事&?这对character类来说不太合适。此外,无需逃避+或。然后使用:
yourString.match(re)