Подтвердить что ты не робот

Интерпретация интервала Coffeescript Regex

Coffeescript поддерживает интерполяцию строк:

user = "world"
greeting = "Hello #{user}!"

Можно ли использовать интерполяцию в регулярном выражении точно так же, как в строках? Например.

regex = /Hello #{user}/g

P.S. Я знаю, что могу использовать RegExp(greeting, 'g'), я просто хочу немного более чистый код.

4b9b3361

Ответ 1

Блочные регулярные выражения (Heregexes) поддерживают интерполяцию.

Блокировать регулярные выражения

Подобно блочным строкам и комментариям, CoffeeScript поддерживает блочные регулярные выражения - расширенные регулярные выражения которые игнорируют внутренние пробелы, а могут содержать комментарии и интерполяция. Моделируемый после модификатора Perl/x, блок CoffeeScript регулярные выражения ограничены///и имеют большое значение для создания сложных читаемые регулярные выражения.

Этот код coffeescript:

name="hello"
test=///#{name}///

компилируется в

var name, test;

name = "hello";

test = RegExp("" + name);