replace()二参为函数时
关于js replace 第二个参数是函数时,函数参数解析 function formateString ( str , obj ) { return str . replace ( /\{#(\w+)#\}/g , function ( match , key , index , source ) { console . log ( arguments ) ; //{#content#} content 5 <div>{#content#}</div> return obj [ key ] ; //"<div>helloWorld</div>" } ) } var string = '<div>{#content#}</div>' ; formateString ( string , { content : 'helloWorld' } ) ; match 是匹配到字符串 示例中 为 {#content#} key 是捕获分组中内容(无分组时不存在),正则表达式中小括号内的内容为一个分组,所以示例中为content index 是字符串的下标也就是示例中 { 的下标即 5 source 是原字符串 示例中为 <div>{#content#}</div> var str = "a1ba2b" ; var reg = /a.b/g ; str = str . replace (