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

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

Я не могу найти окончательной информации о том, что означает / в JavaScript-выражении.

Код replace(/\r/g, '');

Что я могу выяснить, так это:

  • /= Я не знаю
  • \r= возврат каретки
  • /g= Я не знаю, но это может означать, что матч должен происходить в том месте, где закончился предыдущий матч.
4b9b3361

Ответ 1

Слэши указывают начало и конец регулярного выражения.

g в конце - это флаг и указывает, что это глобальный поиск.

Из docs:

Регулярные выражения имеют четыре необязательных флага, которые допускают глобальные и нечувствительный к регистру поиск. Чтобы указать глобальный поиск, используйте g флаг. Чтобы указать поиск без учета регистра, используйте флаг i. к укажите многострочный поиск, используйте флаг m. Чтобы выполнить "липкую" поиск, совпадающий с текущей позицией в целевом string, используйте флаг y. Эти флаги могут использоваться отдельно или вместе в любом порядке и включены как часть регулярного выражения.

Чтобы включить флаг с регулярным выражением, используйте этот синтаксис:

 var re = /pattern/flags;

Ответ 2

Как указывали другие, вы должны прочитать документы! Тем не менее:

Подумайте о косой черте как кавычки для регулярных выражений. Косые черты содержат выражение, но сами не являются частью выражения. (Если вы хотите протестировать косую черту, вам нужно сбежать с обратной косой чертой). В нижнем регистре g указано, что это глобальный поиск, т.е. Найти все совпадения, а не останавливаться в первом совпадении.

Ответ 3

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

Ответ 4

Чтобы добавить немного больше деталей, символы / являются частью синтаксиса регулярного выражения literal в JavaScript/ECMAScript. Символы / используются во время лексического анализа, чтобы определить, что шаблон регулярного выражения присутствует между ними, и все, что сразу после них будет представлять собой флаги регулярного выражения, стандарт ECMAScript определил это в EBNF, для вашего perusual

RegularExpressionLiteral::/RegularExpressionBody/ ФлагиРегулярногоВыражения

Хорошей аналогией для / в регулярных выражениях является " или ', которые окружают строковые литералы в JavaScript.