Найти и заменить слова в строке
Мне нужно найти в строке слова, которые длиннее 3 символов, которые не обрамлены тегами и которые сами не являются тегами.
У меня получился такой код:
function replaceLongWords(str) {
// Регулярное выражение для поиска слов длиннее трех символов,
// не являющихся тегами и не находящихся внутри тегов
const regex = /(?<!<[^>]*)\b\p{L}{4,}\b(?![^<]*>)/gu;
// Функция обратного вызова для замены найденных слов
function replaceCallback(match) {
// Код замены слова
// Например, заменим слово на его длину
return match.length.toString();
}
// Замена найденных слов с помощью функции обратного вызова
const replacedStr = str.replace(regex, replaceCallback);
return replacedStr;
}
const inputString = "Это пример <b>текст</b> с некоторыми <span>test</span> словами длиннее трех символов, которые не являются тегами, и которые не находятся внутри <i>каких-либо</i> тегов.";
const result = replaceLongWords(inputString);
console.log(result);
но проблема в том что он не видит почему-то русских слов.
буду благодарен за помощь!
Источник: Stack Overflow на русском