js中replace中的回调函数

同时我们使用replace进行字符替换,第二个参数传入替换的参数:

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


但,其实replace的第二个参数可以传入一个回调函数

str.replace(ext, function(){})


参数分别为:

  1. 匹配到的字符串
  2. 如果正则使用了分组匹配就为多个,否则无此参数
  3. 匹配字符串的对应索引位置
  4. 原始字符串

回调函数返回替换的值,如果没有返回,默认为undefined

var str = "yyyy-MM-dd".replace(/(y)+/g, function(a,b,c,d){
    console.log(a,b,c,d)
})
// yyyy y 0 yyyy-MM-dd
// str的值为:undefined-MM-dd
"/* 这是一条注释 */".replace(/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg, function(){
    console.log(arguments);
})

结果为:
这里写图片描述
中间的两个undefined是因为([^:]|^)(.*)没有匹配到内容

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值