From d0a5c93e49cca6ea218e204835cc8dce7bd2837b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=E1=BB=B3nh=20=C4=90=E1=BB=A9c=20Kho=E1=BA=A3n?= Date: Fri, 20 Dec 2024 14:33:36 +0700 Subject: [PATCH] fix replace all with special characters --- src/lib/common.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib/common.js b/src/lib/common.js index ba27b70f..419541dc 100644 --- a/src/lib/common.js +++ b/src/lib/common.js @@ -155,7 +155,12 @@ export function getObjectOwnFieldCount(object) { } export function replaceAll(value, originalValue, targetValue) { - return value.replaceAll(new RegExp(originalValue, 'g'), targetValue); + // Escape special characters in originalValue to safely use it in a regex pattern. + // This ensures that characters like . (dot), * (asterisk), +, ?, etc. are treated literally, + // rather than as special regex symbols. + const escapedOriginalValue = originalValue.replace(/([.*+?^=!:${}()|\-/\\])/g, '\\$1'); + + return value.replaceAll(new RegExp(escapedOriginalValue, 'g'), targetValue); } export function removeAll(value, originalValue) {