Существует массив с именами allRoles, а также строковая переменная textSearchIn с текстом. Следующий код по идее должен находить в переменной textSearchIn имя из массива, если после него стоит точка, и заменять найденную подстроку в формате "*[имя из массива].", но замены не происходит. В чем может быть проблема?
let textSearchIn = "Городничий. Я пригласил вас, господа, с тем чтобы сообщить вам пренеприятное известие: к нам едет ревизор. Аммос Федорович. Как ревизор? Артемий Филиппович. Как ревизор? Городничий. Ревизор из Петербурга, инкогнито. И еще с секретным предписаньем. Аммос Федорович. Вот те на!";
let allRoles = ["Городничий", "Аммос Федорович", "Артемий Филиппович", "Лука Лукич", "Коробкин", "Жена Коробкина", "Люлюков", "Гостья"];
let newText;
for (let i = 0; i<allRoles.length; i++) {
token = allRoles[i]+"\.";
newText = textSearchIn.replace(new RegExp(token, 'g'), '*'+token);
}
let textSearchIn = "Городничий. Я пригласил вас, господа, с тем чтобы сообщить вам пренеприятное известие: к нам едет ревизор. Аммос Федорович. Как ревизор? Артемий Филиппович. Как ревизор? Городничий. Ревизор из Петербурга, инкогнито. И еще с секретным предписаньем. Аммос Федорович. Вот те на!";
let allRoles = ["Городничий", "Аммос Федорович", "Артемий Филиппович", "Лука Лукич", "Коробкин", "Жена Коробкина", "Люлюков", "Гостья"];
const reg = new RegExp(`(` + allRoles.join(`\\.)|(`) + `\\.)`, 'gi')
console.log(textSearchIn.replace(reg, (a) => '*' + a))
UPD Упрощенный вариант без группировки (...)
от yar85
let textSearchIn = "Городничий. Я пригласил вас, господа, с тем чтобы сообщить вам пренеприятное известие: к нам едет ревизор. Аммос Федорович. Как ревизор? Артемий Филиппович. Как ревизор? Городничий. Ревизор из Петербурга, инкогнито. И еще с секретным предписаньем. Аммос Федорович. Вот те на!";
let allRoles = ["Городничий", "Аммос Федорович", "Артемий Филиппович", "Лука Лукич", "Коробкин", "Жена Коробкина", "Люлюков", "Гостья"];
const reg = new RegExp(allRoles.join(`\\.|`), 'gi')
console.log(textSearchIn.replace(reg, '*$&'))
let textSearchIn = "Городничий. Я пригласил вас, господа, с тем чтобы сообщить вам пренеприятное известие: к нам едет ревизор. Аммос Федорович. Как ревизор? Артемий Филиппович. Как ревизор? Городничий. Ревизор из Петербурга, инкогнито. И еще с секретным предписаньем. Аммос Федорович. Вот те на!";
let allRoles = ["Городничий", "Аммос Федорович", "Артемий Филиппович", "Лука Лукич", "Коробкин", "Жена Коробкина", "Люлюков", "Гостья"];
let newText = textSearchIn;
for (let i = 0; i < allRoles.length; i++) {
let token = allRoles[i] + "\.";
newText = newText.replace(new RegExp(token, 'g'), '*' + token);
}
console.log(newText);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Попробую объяснить, что мне нужно, на данном примере я создаю 1 объект, в который передаю 3 параметра, а как сделать так, чтобы я мог создать...
Подскажите, пожалуйста, как в TypeScript obj преобразовать в newObj?
Вытаскиваю данные с биржи, сначала торговую пару, а потом к ней несколько данных по таймфреймамТо есть
У меня проблема Я создаю онлайн-тестЯ проверяю, что интернет был отключен с помощью плагина jquery checknet