<script type="text/javascript">
  <!--
var template="test abc [myk] is my is ok? ok? ok? [myk] ?";
var data = "haha,";
var key="myk"; var t = template.replace("\["+key+"\]","ig"),data);
alert(t);
  //-->
  </script>我想要的结果
test abc haha, is my is ok? ok? ok? haha,但这样写出来不对,不知道这怎么写。 "\["+key+"\]"  key是动态的。

解决方案 »

  1.   

    var template="test abc [myk] is my is ok? ok? ok? [myk] ?";
    var data = "haha,";
    var key = "myk";var t = template.replace(new RegExp("\\["+key+"\\]","ig"), data);
    alert(t);
      

  2.   

    扩展性较高的方法:
    var template = "test abc [myk] is my is ok? ok? ok? [myk] ? [test][none]";function format(template, dict) {
        return template.replace(/\[(.*?)\]/g, function($0, $1) {
             if ($1 in dict) return dict[$1];
             return "";
        });
    }alert(format(template, { "myk": "haha,", "test": "测试" }));
      

  3.   

    刚贴上来少了: new RegExp(ok了,谢谢,原来要2个"\"