Skip to content

Instantly share code, notes, and snippets.

@br4instormer
Last active May 15, 2023 19:39
Show Gist options
  • Select an option

  • Save br4instormer/813f66fec644dd070b6a0f047d82ab37 to your computer and use it in GitHub Desktop.

Select an option

Save br4instormer/813f66fec644dd070b6a0f047d82ab37 to your computer and use it in GitHub Desktop.

Рандомизатор текста по шаблону на JavaScript

Реализация задачи с fl.ru. Заказчик выбрал другого исполнителя.

Нужно написать функцию на JS, которая на входе будет получать текстовую переменную:

{Привет|Здравствуй|Хай}! У тебя есть {3|5|10|20} попыток, что бы {правильно ответить|угадать ответ} на вопрос.

А на выходе сгенерированный текст типа:

Хай! У тебя есть 10 попыток, что бы угадать ответ на вопрос.

Т.е. нужно в тексте найти все {} и выбрать случайным образом одно из значений, которые разделены |, подставить их в текст и отдать строку обратно. Использовать это я буду для автоматизации в n8n, который хорошо понимает JS, так что нужна просто функция, которая будет выполнять поставленную задачу. Работать должно по аналогии сервисов, подобного этому miniwebtool.ru/

Жду ваших предложений по цене и срокам исполнения. Спасибо!

// [min, max)
const randomNumber = (min, max) => Math.floor(Math.random() * (max - min) + min);
const randomizeString = (entry) => entry.replace(/\{([\s\S]*?)\}/g, (_, group) => randomizeVariants(group));
function randomizeVariants(entry) {
const variants = entry.split("|");
return variants[randomNumber(0, variants.length)];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment