Что случилось с обозначением регулярного выражения JavaScript?


Answers

Я мог себе представить, что буквальное обозначение регулярного выражения является препятствием для эволюции двигателя регулярных выражений, отделенного от спецификации языка.

Если все регулярные выражения были строками, они всегда были действительны на уровне языка, и механизм регулярных выражений мог интерпретировать их более свободно.

Но это всего лишь предположение. Я понятия не имею, что имел в виду Крокфорд с его заявлением.

Лично я считаю, что литералы регулярных выражений весьма полезны. Они намного менее подробные, чем new RegExp(pattern, flags) альтернатива new RegExp(pattern, flags) с необходимостью придерживаться как выравнивания регулярных выражений, так и правил экранирования строки ( "Path\\\\with\\\\backslashes" , кто-нибудь?). Я не вижу огромной выгоды для этой нотации, кроме как для работы с динамическими регулярными выражениями.

Question

Я читал веб-страницу Дугласа Крокфорда, JavaScript: самый непонятный язык программирования в мире , и я не мог не заметить, что в разделе «Ошибки проектирования» он упоминает «обозначение для литералов регулярных выражений». О чем именно он говорит? Что не так с обозначением JavaScript для регулярных выражений и почему?




Возможно, испортили косые черты, используемые для комментариев и деления на это, или потому что «они должны быть одной строкой без пробелов или комментариев, вставленных в нее».