Google Script - получить текст с апострофом в ячейке (электронная таблица) и найти его в теле документа Google.

Я создал скрипт (скрипт, связанный с контейнером) в своей электронной таблице, в котором у меня есть 4 столбца: (1) текст до, (2) текст после, (3) текст для вставки между и (4) URL-адрес документа Google с текстом, в котором я хочу заменить на правильное значение (между).

Мой метод замены не работает, когда у меня есть апостроф ('), который я не пробовал для других символов (/,"поэтому я не знаю). Как решить эту проблему? введите описание изображения здесь Это мой код:

var COLUMN_URL =....

var URL = ...;
// loop for n
Logger.log(' URL ' + URL);
var body = DocumentApp.openByUrl(URL).getBody();
body.replaceText(
  sheet.getRange(n + 1, 2).getDisplayValue() + ".*" + sheet.getRange(n + 1, 3).getDisplayValue(), 
  sheet.getRange(n + 1, 2).getDisplayValue() + sheet.getRange(n + 1, 4).getDisplayValue() +
  sheet.getRange(n + 1, 3).getDisplayValue()
);

Изменить: я проверил с несколькими символами, когда я не использую апострофы, кавычки, * и? это работает, я буду тестировать с другими символами, но пока! & . и числа, помещенные в ячейки (до и после), работают

С помощью \, ( и ) я получаю сообщение о недопустимом шаблоне регулярного выражения, который мне нравится.*McDonald)s

1 ответ

Решение

Пытаться \Q...\E ¹

var textBfr = sheet.getRange(n + 1, 2).getDisplayValue(),
   textAr = sheet.getRange(n + 1, 3).getDisplayValue(),
   textInsert = sheet.getRange(n + 1, 4).getDisplayValue();
    body.replaceText( "\\Q"+textBfr+"\\E"+ ".*?" +"\\Q"+textAr+"\\E", textBfr+textInsert+textAr);    
Другие вопросы по тегам