Ошибка синтаксиса: недопустимый квантификатор +. (строка 127, файл “Код”) в Google App Script [закрыто]

Вопрос или проблема

Строка 127 выглядит следующим образом:

var reg = new RegExp(from, ‘i’);

Как мне исправить эту ошибку?
Мне сказали, что нужно экранировать символ “+”, но я не знаю, как это сделать.

Заранее спасибо за вашу помощь.

Ответ или решение

Ошибка SyntaxError: Invalid quantifier + в Google App Script возникает, когда регулярное выражение содержит неверный синтаксис, особенно если оно включает специальные символы, такие как +, без предварительного экранирования. В вашем случае, строка var reg = new RegExp(from, 'i'); может содержать символ + в переменной from, что приводит к сбою.

Чтобы исправить эту ошибку, вам нужно экранировать специальные символы в строке, которая передается в RegExp. Ниже приведен пример, как это можно сделать:

  1. Создайте функцию для экранирования специальных символов:
function escapeRegExp(string) {
    return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // экранирует специальные символы
}
  1. Используйте эту функцию для обработки строки from:
var safeFrom = escapeRegExp(from); // экранируем строку
var reg = new RegExp(safeFrom, 'i'); // создаем регулярное выражение

Теперь, если переменная from содержит символ +, он будет корректно экранирован, и ошибка Invalid quantifier + не возникнет.

Пример использования:

var from = "test+sample"; // пример строки
var safeFrom = escapeRegExp(from);
var reg = new RegExp(safeFrom, 'i'); // создаем регулярное выражение с экранированной строкой

console.log(reg.test("This is a test+sample text.")); // должна вернуть true

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

Оцените материал
Добавить комментарий

Капча загружается...