理解JavaScript 使用Replace 進行選擇性替換
當使用JavaScript 的Replace() 方法操作字串時,你可能已經注意到字串,它經常只替換指定字元或模式的第一個實例。這種行為可能會令人費解,尤其是當您打算替換所有實例時。
範例:
考慮以下程式碼片段:
var date = $('#Date').val(); // "12/31/2009" var id = 'c_' + date.replace("/", ''); // "c_1231/2009"
如您所注意到的,替換僅刪除了/ 字元的第一個實例,而第二個實例保持不變。要理解其中的原因,我們需要深入研究 Replace() 方法的工作原理。
RegExp 和全域標誌:
replace() 使用正規表示式 (RegExp ) 在字串中定位目標模式。預設情況下,它僅匹配第一個匹配項。要取代所有實例,我們需要使用“g”修飾符指定全域標誌。
如何全域替換:
有兩種方法來應用全域flag:
在正規表示式中使用g標誌:
var id = 'c_' + date.replace(new RegExp("/", "g"), '');
使用g 標誌作為Replace() 的第二個參數:
var id = 'c_' + date.replace(/\//g, '');
這兩個方法都會指示replace()搜尋並取代指定字元或模式的所有實例,如下所示:
var id = 'c_' + date.replace(/\//g, ''); // "c_12312009"
以上是為什麼 JavaScript 的 Replace() 方法有時只會替換模式的第一個實例?的詳細內容。更多資訊請關注PHP中文網其他相關文章!