正则表达式匹配{0}

问题描述

就是想匹配字符串模板里面的{0},{1},...等等,例如:var str1 = "我是{0},年龄{1}";str1.format("aa", 12);之后str1为:我是aa,年龄12

相关代码

String.prototype.format = function (args) {
  var result = this;
  if(arguments.length > 0) {
    if(arguments.length === 1 && typeof (args) === "object") {
      for(var key in args) {
        if(args[key] != undefined) {
          var reg = new RegExp("{" + key + "}", "g");
          console.log(reg);
          result = result.replace(reg, args[key]);
        }
      }
    } else {
      for(var i=0; i<arguments.length; i++) {
        if(arguments[i] != undefined) {
          var reg = new RegExp("{" + i + "}", "g");
          console.log(reg);
          result = result.replace(reg, arguments[i]);
        }
      }
    }
  }
  return result;
}

你期待的结果是什么?实际看到的错误信息又是什么?

上面那个代码的else里面有错误,说是:Invalid regular expression: /{0}/: Nothing to repeat。

阅读 2.4k
1 个回答

/\{[0-9]\}/
{}要转义啊

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题