如何在coffeescript heregex中设置修饰符?

bro*_*ox9 3 regex coffeescript

我在coffeescript中有这个heregex试图抓住网址:

regex = /// (
  ((f|ht){1}tp(s)?://)
  [-a-zA-Z0-9@:%_\+.~?&//=]+
  )
///
Run Code Online (Sandbox Code Playgroud)

但如何设置全局和忽略大小写标志?我试过这个:

    newregex = regex.compile(regex,"gi")
Run Code Online (Sandbox Code Playgroud)

但这也不起作用

Jas*_*ark 6

Coffeescript将你的heregex转换为单行正则表达式:

//Generated by CoffeeScript 1.3.1
var regex;

regex = /(((f|ht){1}tp(s)?:\/\/)[-a-zA-Z0-9@:%_\+.~?&\/\/=]+)/;
Run Code Online (Sandbox Code Playgroud)

而javascripts正则表达式语法/regex/mods是regex.compile("regex","mods")的简写,因此您不需要编译它.您可以将修饰符添加到heregex:

regex = /// (
  ((f|ht){1}tp(s)?://)
  [-a-zA-Z0-9@:%_\+.~?&//=]+
  )
///gi
Run Code Online (Sandbox Code Playgroud)