1. 程式人生 > >js 中replace中的回撥函式

js 中replace中的回撥函式

定義和用法

replace() 方法用於在字串中用一些字元替換另一些字元,或替換一個與正則表示式匹配的子串。

我們常用的是:

   使用replace進行字元替換,第二個引數傳入替換的引數:

"yyyy-MM-dd".replace(/y+/g,"年")
// 年-MM-dd

其實replace的第二個引數可以傳入一個回撥函式 

str.replace(ext, function(){})
引數分別為:
  • 匹配到的字串
  • 如果正則使用了分組匹配就為多個,否則無此引數
  • 回撥函式返回替換的值,如果沒有返回,預設為undefined 

  • 匹配字串的對應索引位置
  • 原始字串
var str = "{y}-{m}-{d} {h}:{i}:{s} {a}".replace(/{(y|m|d|h|i|s|a)+}/g, function(a,b,c,d){ 
    console.log(a,b,c,d) 
})

//{y} y 0 {y}-{m}-{d} {h}:{i}:{s} {a}