Fix replacer matching partial words

Now checks for end of word / string or tag boundary correctly
This commit is contained in:
DominikDoom
2023-04-25 14:41:29 +02:00
parent 3169420fd3
commit 91fb1cba38

View File

@@ -621,7 +621,7 @@ function updateRuby(textArea, prompt) {
const replaceOccurences = (text, tuple) => {
let { tag, escapedTag, translation } = tuple;
let searchRegex = new RegExp(`(?<!<ruby>)(?:\\b)${escapedTag}(?!<rt>)`, "g");
let searchRegex = new RegExp(`(?<!<ruby>)(?:\\b)${escapedTag}(?:\\b|$|(?=[,| \\t\\n\\r]))(?!<rt>)`, "g");
return text.replaceAll(searchRegex, `<ruby>${escapeHTML(tag)}<rt>${translation}</rt></ruby>`);
}
@@ -658,8 +658,9 @@ function updateRuby(textArea, prompt) {
translateNgram(toNgrams(subTags, 2));
translateNgram(toNgrams(subTags, 1));
let escapedTag = escapeRegExp(tuple.tag.replaceAll("$", "(").replaceAll("%", ")"));
let searchRegex = new RegExp(`(?<!<ruby>)(?:\\b)${escapedTag}(?!<rt>)`, "g");
let escapedTag = escapeRegExp(tuple.tag);
let searchRegex = new RegExp(`(?<!<ruby>)(?:\\b)${escapedTag}(?:\\b|$|(?=[,| \\t\\n\\r]))(?!<rt>)`, "g");
html = html.replaceAll(searchRegex, subHtml);
}
});