我在javascript中有这行代码
var re = (http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?
通常我使用/
字符封装正则表达式语法,但由于它们是在正则表达式中找到的,因此它会破坏封装。有没有其他方法可以将它存储在变量中?
当前的斜杠似乎是转义字符是正则表达式的一部分,因为我在c#中使用它并且完美地工作
答案 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\-\@?^=%&\/~\+#])?/
(你已经用前两个斜线做了......)