zengjd 2013-06-05 09:28 采纳率: 55.6%
浏览 250
已采纳

关于js中的Replace函数的简单疑问!

function(s, c) {
    return s.replace(/{(\w+)}/g, function(m, p) {
        return c[p];
    })
}

上面这个函数是什么意思啊?

  • 写回答

2条回答 默认 最新

  • clxy大叔 2013-06-05 12:34
    关注

    Javascript中的replace函数的第二个参数可以是函数。

    如果是函数,将会用该函数的返回值进行替换。

    /{(\w+)}/g 匹配所有 花括号中间的文字。比如a{b}c这样会匹配出b。

    你的代码中的那个c多半是个map或对象。

    说到这你可能明白了吧,是个参数替换的方法。下面是示例,看得清楚些。

    [code="js"]
    function abc(s, c) {
    return s.replace(/{(\w+)}/g, function(m, p) {
    console.log(m + ", " + p);//打印参数。
    return c[p];
    })
    }

    console.log(abc("a{b}c", {
    b : "BBB"
    }));
    [/code]
    输出如下:
    {b}, b
    aBBBc <-最终结果。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥15 绘制多分类任务的roc曲线时只画出了一类的roc,其它的auc显示为nan
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?