diff --git a/src/shared/html-sanitizer.ts b/src/shared/html-sanitizer.ts
index 778a5ee4..8f3ae932 100644
--- a/src/shared/html-sanitizer.ts
+++ b/src/shared/html-sanitizer.ts
@@ -1,10 +1,19 @@
function removeZalgoText(text: string): string {
// Match combining characters that are commonly used in Zalgo text
- // Using alternation instead of character class to avoid misleading-character-class warning
- const zalgoRegex =
- /(\u0300-\u036F|\u1AB0-\u1AFF|\u1DC0-\u1DFF|\u20D0-\u20FF|\uFE20-\uFE2F)/g;
+ // Using a more explicit approach to avoid misleading-character-class warning
+ const combiningMarks = [
+ /\u0300-\u036F/g, // Combining Diacritical Marks
+ /\u1AB0-\u1AFF/g, // Combining Diacritical Marks Extended
+ /\u1DC0-\u1DFF/g, // Combining Diacritical Marks Supplement
+ /\u20D0-\u20FF/g, // Combining Diacritical Marks for Symbols
+ /\uFE20-\uFE2F/g, // Combining Half Marks
+ ];
- return text.replaceAll(zalgoRegex, "");
+ let result = text;
+ for (const regex of combiningMarks) {
+ result = result.replace(regex, "");
+ }
+ return result;
}
export function sanitizeHtml(html: string): string {