Я работаю над сценарием замены имени для онлайн-платформы TTRPG, но я плохо знаком с Regex.
В настоящее время у меня есть следующий код, который во многих случаях корректно заменяет имя:
el.innerHTML = el.innerHTML.replace(new RegExp("\\b" + data.alias + "\\b", "gi"), replacement);
В этом примере:
data.alias
- это имя "существа", оно может быть таким простым, как Bandit
, или сложным, как Goblin King (Variant 1)
.
replacement
- выбранная пользователем строка, например Unknown Creature
Пример el
может выглядеть примерно так: <h4>Bandit</h4>
или может быть: <p>The Goblin King (Variant 1) is known to lair in the dank, dark cave</p>
Следующие проблемы вызывают у меня горе, пытаясь найти правильный шаблон соответствия:
1. Для имени с общим словом, например bandit
Я не хочу, чтобы шаблон соответствовал такому слову, как banditry
2. Для имен, которые не имеют словесных символов (таких как (
), мое текущее совпадение границы слова не выполняется. Я не уверен, является ли разумным выбором простое экранирование всех специальных символов
Существует ли шаблон, который может точно соответствовать именам, учитывая, что имя является известным количеством?