為什麼Javascript的Replace函數只會取代第一個實例
在JavaScript中使用replace()時,可能會遇到只替換的情況目標字串的第一個實例。這種明顯的不一致源自於函數的預設行為。
理解replace()行為
預設情況下,replace()找出並取代第一次出現的指定子字串在一個字串內。如果要取代所有實例,則需要在正規表示式中指定 g(全域)標誌。
範例:設定g 標誌
考慮範例問題中提供:
var date = $('#Date').val(); // Gets value "12/31/2009" var id = 'c_' + date.replace("/", ''); // Replaces only the first "/", resulting in "c_1231/2009"
要取代所有正斜線(/) 的實例,請使用g 標誌:
var id = 'c_' + date.replace(new RegExp("/", "g"), ''); // Replaces all "/" with "", resulting in "c_12312009"
或者,您可以使用更簡單的語法:
var id = 'c_' + date.replace(/\//g, ''); // Equivalent to the previous line
透過設定g 標誌,正規表示式會符合所有出現的目標字串,並將它們替換為指定的新值。此行為可確保所有實例都按預期替換。
以上是為什麼 JavaScript 的替換函數僅限於第一個實例的替換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!