在JavaScript中,replace()
函數用于替換字符串中的指定文本。如果你想要同時替換多個值,可以使用正則表達式(RegExp)和全局匹配標志g
。下面是一個示例:
let str = "Hello, {name}! Your age is {age}.";
let values = {name: "John", age: 30};
let pattern = new RegExp("{" + Object.keys(values).join("|") + "}", "g");
let result = str.replace(pattern, match => values[match.slice(1, -1)]);
console.log(result); // 輸出: "Hello, John! Your age is 30."
在這個示例中,我們首先創建了一個包含要替換的值的對象values
。然后,我們使用Object.keys()
方法獲取對象的鍵,并使用join()
方法將它們連接成一個字符串,用豎線|
分隔。這樣,我們就可以在正則表達式中使用這個字符串來匹配多個鍵。
接下來,我們創建一個正則表達式pattern
,其中包含了全局匹配標志g
。這個正則表達式將匹配所有在values
對象中定義的鍵。
最后,我們使用replace()
函數將字符串str
中的所有匹配項替換為相應的值。我們使用箭頭函數match => values[match.slice(1, -1)]
作為替換參數,它將根據匹配到的鍵從values
對象中獲取相應的值。