為什麼JavaScript Replace 只取代第一個實例:探索RegExp 標誌
當使用JavaScript 的替換方法來尋找並將其替換為另一個字串時,您可能會遇到僅替換目標字串的第一個實例的行為。出現此行為的原因是替換的預設行為是執行單一非全域搜尋和取代操作。
全域替換:正規表示式標誌
取代所有如果字串中存在目標字串的實例,則需要在替換方法中使用的正規表示式中指定“全域”標誌(g)。此標誌指示搜尋和取代操作應在整個字串中進行,取代目標字串的每個出現位置。
例如,在您的程式碼中:
<code class="javascript">var date = $('#Date').val(); // e.g., "12/31/2009" var id = 'c_' + date.replace("/", ''); // c_1231/2009 (wrong)</code>
要替換所有出現的位置對於「/」字符,您需要指定「全域」標誌:
<code class="javascript">var id = 'c_' + date.replace(new RegExp("/", "g"), ''); // c_12312009 (correct)</code>
或者,您可以使用更短的語法:
<code class="javascript">var id = 'c_' + date.replace(/\//g, ''); // c_12312009 (correct)</code>
透過指定「全域」 flag,replace 方法將替換日期字串中的每個斜線字符,從而得到正確的輸出。
以上是為什麼 JavaScript 的 Replace 方法只替換第一個實例?的詳細內容。更多資訊請關注PHP中文網其他相關文章!