s = s.replace(/^\[b\](.+)\[\/b\]$/g,'<b>$1</b>');试试。

解决方案 »

  1.   

    这个也不行,因为仅是替换以""开始并以""结尾的
    替换后结果为: s = "<b>11111111[/b]asdfasd22222222</b>";
    如果 s = "000[b]11111111asdfasd22222222000"; 替换失败
    --------------------------------------------------------------------我需要的是: s = "<b>11111111</b>asdfasd<b>22222222</b>";
    --------------------------------------------------------------------如果使用  s = s.replace(/\[b\]([^\[]+)\[\/b\]/g,'<b>$1</b>');也不行
    因为当 s = "11111[[[[111asdfasd22222222"; 替换失败
      

  2.   

    <script language=JavaScript>
    s = "11111111asdfasd22222222";
    s = s.replace(/\[b\](.[^(\[\/b\])]+)\[\/b\]/ig,'<b>$1</b>');
    alert(s)
    </script>
      

  3.   

    在不行就
    <script language=JavaScript>
    s = "11111[[[[111asdfasd22222222"; 
    s = s.replace(/\[b\]/ig,'<b>').replace(/\[\/b\]/ig,'</b>');
    alert(s)
    </script>
      

  4.   

    上上个不行;
    上个会有可能不是成对出现的问题,如:s = "[b]11111111";这样一来又变成不安全的代码了
    感谢ln_boy(lnboy),xinyunyishui(心云意水).