Spec-Zone.ru › JavaScript

SyntaxError: \ в конце шаблона

Исключение JavaScript "\ at end of pattern" возникает, когда шаблон регулярного выражения заканчивается неэкранированным обратным слэшем (\). В литерале регулярного выражения обратный слэш заставил бы закрывающий слэш / стать литеральным символом, поэтому это может произойти только при использовании конструктора RegExp().

Сообщение

SyntaxError: Invalid regular expression: /\/: \ at end of pattern (V8-based)
SyntaxError: \ at end of pattern (Firefox)
SyntaxError: Invalid regular expression: \ at end of pattern (Safari)

Тип ошибки

SyntaxError

Что пошло не так?

Обратный слэш не может появляться буквально в регулярном выражении. Он либо предшествует другому символу, чтобы экранировать его, либо сам экранируется другим обратным слэшем. Обратный слэш в конце шаблона регулярного выражения недопустим, поскольку он ничего не экранирует.

Примеры

Двойное экранирование обратных слэшей

Эта ошибка может возникнуть только при использовании конструктора RegExp(). Рассмотрим следующий код, который предназначен для сопоставления одного символа обратного слэша:

const pattern = new RegExp("\\");

В строках JavaScript обратные слэши также являются экранирующими последовательностями. Следовательно, два обратных слэша в строковом литерале "\\" интерпретируются как один обратный слэш. Затем конструктор RegExp() видит только один символ обратного слэша в исходном коде регулярного выражения. Чтобы исправить это, вам нужно дважды экранировать обратный слэш:

const pattern = new RegExp("\\\\");

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

Смотрите также

  • Регулярные выражения
  • Экранирующие последовательности

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Regex_backslash_at_end_of_pattern

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API