JavaScript регулярное выражение? - PullRequest
0 голосов
/ 17 декабря 2018

Этот вопрос конкретно о транспортере или его расширении.RegExp() означает, что создание объекта значительно медленнее и создает RegExp на каждой итерации .

Кажется, JavaScript не допускает нечувствительные пробелы в своем регулярном выражении.Есть ли какой-либо транспортер для JavaScript, который разрешает что-то вроде /x от perl, в Regex.

/x и /xx Один "/ x" сообщает парсеру регулярного выражения игнорировать большинство пробелов, которые не являются ни обратной косой чертой, ни внутри класса символов в квадратных скобках. Вы можете использовать это, чтобы разбить ваше регулярное выражение на более читаемые части.Кроме того, символ «#» обрабатывается как метасимвол, представляющий комментарий, который идет до закрывающего разделителя шаблона или до конца текущей строки, если шаблон распространяется на следующую строку.Следовательно, это очень похоже на обычный комментарий кода Perl.(Вы можете включить закрывающий разделитель в комментарий, только если перед ним стоит обратная косая черта, поэтому будьте осторожны!)

Это позволяет написать что-то вроде

let res = name.match(/^([^\d]*?)(?:\s*[.,]\s*([0-9]+)(?: mo)?)?[.,]?$/);

Likeэто,

let res = name.match(/
  ^
  ([^\d]*?)                       # name
  (?:\s*[.,]\s*([0-9]+)(?: mo)?)? # age, mo
  [.,]?                           # trailing dirt
  $
 /);

1 Ответ

0 голосов
/ 17 декабря 2018

Я полагаю, вы ищете что-то вроде этого: https://www.npmjs.com/package/babel-plugin-transform-modern-regexp

...