Как JavaScript обнаруживает регулярные выражения?

Я пишу парсер JS, и мне интересно, как различать регулярное выражение (/lookup/g) и простое деление (bar/baz/g). Каковы правила, используемые JavaScript для определения регулярных выражений?

Ответ 1

Вы хотите проверить раздел 7.8.5 в спецификации ECMA (аннотированная версия обновляется в настоящее время, но всегда проверьте последний PDF из ECMA).

Помните также, что JavaScript-выражение не может быть пустым. // - это всегда начало однострочного комментария. Также стоит упомянуть, что точку с запятой никогда не следует вставлять перед литералом регулярного выражения.

Tangential, пустое JavaScript-выражение выглядит как /(?:)/.

Дальнейшее обсуждение.