一般情況下我們可能會用到正則表達式去替換文本: 復制代碼 代碼如下: var a = "abc123aXc"; a.replace(/a.c/g, 'ZZ');
我們可以用函數來定義高級替換,而不是一個簡單的字符串。比如:
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行] 我們看到,當正則表達式每產生一次匹配時,會觸發替換函數並將匹配字符串作為參數傳到替換函數中。當正則表達式中定義了子匹配(submatch)時,甚至可以做更高級的事情,替換函數可以根據不同的子匹配來作出相應的處理。比如我們要對網頁中的某些指定的實體代碼轉化為特殊字符: [code] var entity = { quot: '"', lt: '<', gt: '>' }; function deentityify(a, b) { var r = entity[b]; return typeof r === 'string' ? r : a; } var a = "<a href="http://jb51.net/">"; a.replace(/&([^&;]+);/g, deentityify);