<script type="text/javascript">
var str = "[B=200][A=100][C=300]";
var m = "A";
var s = str.search(eval("/\["+m+"\=\d+\]/"));
alert(s);//  我想得到 [100=197] 所在位置,怎么不对? 通过M变量给的名字值 
</script>

解决方案 »

  1.   

    var str = "[B=200][A=100][C=300]";
    var m = "A";
    var s = str.search(eval("/\\\[" + m + "\=\\\d+\\\]/"));
    alert(s);
      

  2.   

    你的错不在于你使用了变量 而是转义字符的问题
    在构造正则的时候\[=>[了
    那么你的正则就被构造成了
    [A=d+]
    这样明显不符合
    \[A=\d+\]的本意
    所以就多来点\咯
      

  3.   

     <script language="javascript">
    var str = "[A=100][B=200][C=300]"
    var m= "A"
    //var reg = /\[A\=\d+\]/
    var reg = new RegExp("\\["+m+"\\=\\d+\\]")
    alert(reg)
    alert(str.search(reg))
    alert(str.replace(reg,""))
     </script>