From ebd198e28d372a24dd3ec840622a937fb395c82a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BE=9D=E7=91=AA=E8=B2=93?= Date: Tue, 10 Mar 2026 00:29:28 +0800 Subject: [PATCH] Use String.replaceAll() instead of String.replace() with /g flag (S7781) Co-Authored-By: Claude Opus 4.6 --- .../Discover/Map/Filter/AttributesFilter.vue | 2 +- src/components/Discover/Map/SidebarState.vue | 2 +- src/components/DurationInput.vue | 2 +- src/utils/escapeHtml.js | 10 +++++----- src/views/Upload/UploadPage.vue | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/components/Discover/Map/Filter/AttributesFilter.vue b/src/components/Discover/Map/Filter/AttributesFilter.vue index 2a3aae6..b250808 100644 --- a/src/components/Discover/Map/Filter/AttributesFilter.vue +++ b/src/components/Discover/Map/Filter/AttributesFilter.vue @@ -921,7 +921,7 @@ function sliderValueRange(e, direction) { // Update the slider selectArea.value = closestIndexes; // Reset the start/end calendar selection range - if (!isDateType) inputValue = Number(e.value.replace(/,/g, "")); + if (!isDateType) inputValue = Number(e.value.replaceAll(",", "")); if (direction === "start") { if (isDateType) { endMinDate.value = e; diff --git a/src/components/Discover/Map/SidebarState.vue b/src/components/Discover/Map/SidebarState.vue index ce0f4dd..6173847 100644 --- a/src/components/Discover/Map/SidebarState.vue +++ b/src/components/Discover/Map/SidebarState.vue @@ -523,7 +523,7 @@ function switchTab(newTab) { function timeLabel(time) { // sonar-qube prevent super-linear runtime due to backtracking; change * to ? // - const label = getTimeLabel(time).replace(/\s+/g, " "); // Collapse all consecutive whitespace into a single space + const label = getTimeLabel(time).replaceAll(/\s+/g, " "); // Collapse all consecutive whitespace into a single space const result = label.match(/^([\d.]+)\s?([a-zA-Z]+)$/); // add ^ and $ to meet sonar-qube need return result; } diff --git a/src/components/DurationInput.vue b/src/components/DurationInput.vue index 5c729df..980354f 100644 --- a/src/components/DurationInput.vue +++ b/src/components/DurationInput.vue @@ -236,7 +236,7 @@ function onChange(event) { * @param {KeyboardEvent} event - The keyup event. */ function onKeyUp(event) { - event.target.value = event.target.value.replace(/\D/g, ""); + event.target.value = event.target.value.replaceAll(/\D/g, ""); if (event.keyCode === 38 || event.keyCode === 40) { actionUpDown(event.target, event.keyCode === 38, true); } diff --git a/src/utils/escapeHtml.js b/src/utils/escapeHtml.js index 3fb91e7..8470864 100644 --- a/src/utils/escapeHtml.js +++ b/src/utils/escapeHtml.js @@ -12,9 +12,9 @@ */ export function escapeHtml(str) { return str - .replace(/&/g, "&") - .replace(//g, ">") - .replace(/"/g, """) - .replace(/'/g, "'"); + .replaceAll("&", "&") + .replaceAll("<", "<") + .replaceAll(">", ">") + .replaceAll('"', """) + .replaceAll("'", "'"); } diff --git a/src/views/Upload/UploadPage.vue b/src/views/Upload/UploadPage.vue index bb3222a..5ce9692 100644 --- a/src/views/Upload/UploadPage.vue +++ b/src/views/Upload/UploadPage.vue @@ -325,7 +325,7 @@ function onInput(e) { */ function getTextWidth(text, e) { // Replace spaces with non-breaking spaces - const processedText = text.replace(/ /g, "\u00a0"); + const processedText = text.replaceAll(" ", "\u00a0"); const hiddenSpan = document.createElement("span"); hiddenSpan.textContent = processedText;