写这么复杂, 我看你过不了一会就找不着北了...function fFormat(sStr)
{/* shawl.qiu code, return string */
  var Len = arguments.length, Re = null;  
  switch(Len)
  {
    case 0: return "";
    case 1: return sStr;
  }
  for(var i=1, j=0; i<Len; i++, j++)
  {
    Re = new RegExp(["\\{", j, "\\}"].join(""), "g");
    sStr = sStr.replace(Re, arguments[i]);
  }   
  return sStr;
}/* function fFormat(sStr) */

解决方案 »

  1.   

    你的那种写法是简单但无法处理一些对象属性的操作,我这样些是因为项目的需要
    一些图形的title需要可以编程,而传递过来的是一个对象,以前的简单但解决不了对象
    中包含子对象这些需求
    <script>
    function Format(str,parameter){
        var oReg=/\{(\s*?)([^\s\{\}]*?)(\s*?)\}/gi;
        str=str.replace(oReg,function(){
            alert("["+arguments[2]+"]");
            return parameter[arguments[2]];
        });
        return str;
    }
    var str="最小{ Min },中间:{ Mid},最大:{Max}";
    alert(Format(str,{Min:1,Mid:2,Max:3}));
    </script>