為什麼JavaScript Replace 僅替換第一個實例:探索RegExp Flag
當使用JavaScript 的替換方法查找字串並將其替換為另一個字串時,您可能會遇到僅替換目標字串的第一個實例的行為。出現此行為的原因是替換的預設行為是執行單一非全域搜尋和取代操作。
全域替換:正規表示式標誌
取代所有如果字串中存在目標字串的實例,則需要在替換方法中使用的正規表示式中指定“全域”標誌(g)。此標誌指示搜尋和替換操作應在整個字串中進行,替換目標字串的每次出現。
例如,在您的程式碼中:
var date = $('#Date').val(); // e.g., "12/31/2009"
var id = 'c_' date.replace("/", ''); // c_1231/2009 (wrong)
要替換所有出現的“/”字符,需要指定“global”標誌:
var id = 'c_' date.replace(new RegExp("/", "g"), ''); // c_12312009 (correct)
或者,您可以使用更短的語法:
var id = 'c_' date.replace(/\//g, ''); // c_12312009 (correct)
透過指定“ global」標誌,replace 方法將替換日期字串中的每個斜杠字符,從而得到正確的輸出。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3