如何判断只是在自定义标签中的内容进行替换呢,如<!--start-->a,b ,c,d....<!--end-->a
只过滤掉<!--start-->.......<!--end-->标签中的字串a,替换为A,而不是将标签外的a替换掉,谢谢!

解决方案 »

  1.   

    不是单纯去掉a,而是要判断<!--start>..<!--end-->中的字符串才可以替换的
      

  2.   

    正则表达式是可以的:
    <html>
        <body>
        <script language="JavaScript">
    var str = "<!--start-->a,b ,c,d....<!--end-->a<!--start-->a,b ,c,d....<!--end-->a";
    var temp = new Array();
    var i = 0;
    str = str.replace(/<!--start-->(.*?)<!--end-->/g, function($0, $1){temp.push($1==null?"":$1);return "<\!--start--><\!--end-->";});
    for (var j = 0; j < temp.length; j++)
    {
    temp[i] = temp[i].replace(/a/, "A");
    }
    str = str.replace(/<\!--start--><\!--end-->/g, function($0){return "<\!--start-->" + temp[i++] + "<\!--end-->";});
    alert(str);
        </script>
        </body>  
    </html>
      

  3.   

    楼上的代码有误,且不够简洁。给个参考代码,大家批一批,L@@K:
    <script language="JavaScript">
    <!--var customStartTag = "<!--start-->";
    var customEndTag = "<!--end-->";var s = " <!--start-->a,b ,c,d....<!--end-->aa a aa<!--start-->A,ba, ,aac,d....<!--end-->aaAba ";function ReplaceDemo()
    {
        // 创建正则表达式模式。
        // NOTE: [A-Za-z0-9_,. ]* 
        // 仅适用此例,如果内容变了则需要调整。
        var re = new RegExp(customStartTag + "([A-Za-z0-9_,. ]*)" + customEndTag,"g");    return s.replace(re,
                   function($0,$1,$2) {
                        return (customStartTag + $1.replace(/a/g, "A") + customEndTag);
                   }
                );
    }alert(s + "\n" + ReplaceDemo());//-->
    </script>
      

  4.   

    <script>
    var str= "<!--start-->a,b ,c,d....<!--end-->a";
    var re = /<.[^>]*>(.*?)<.[^>]*>/gi;
    re.test(str)
    str=RegExp.$1;
    str=str.replace("a","A");
    alert(str);
    </script>
      

  5.   

    做下修改:
    <script language="JavaScript">
    var str = "<!--start-->a,b ,c,d....<!--end-->a<!--start-->a,b ,c,d....<!--end-->a";
    str = str.replace(/<!--start-->(.*?)<!--end-->/g, function($0, $1){return "<\!--start-->" + $1.replace(/a/,"A") + "<\!--end-->";});
    alert(str);
    </script>
      

  6.   

    怪我没给出清楚的例子, 需求是这样
    <body>
    fjasflajfja
    ffdsafsfafasf
    <!--start-->
    fdsafdsafdsfsafasf, jkl;jdfkajf;djf,dfsafsadf,
    <!--end-->
    </body>
    一个网页中的内容如上,现在有一个替换的JS代码,用来替换字母"a",但需求只能替换
    <!--start-->
    fdsafdsafdsfsafasf, jkl;jdfkajf;djf,dfsafsadf,
    <!--end-->
    中的“a”,而不能替换标签外的a,而并不是要把
    <!--start-->..<!--end-->付到变量中执行,请大家请教
      

  7.   

    1、用<!--start-->[\s|\S]*?<!--end-->匹配出目标串;
    2、再从目标串替换字符a;
      

  8.   

    1、用<!--start-->[\s|\S]*?<!--end-->匹配出目标串;
    匹配出目标串,这个代码如何写 ,不太明白,谢谢!
      

  9.   

    <textarea id=textarea1>
     
    <body>
    fjasflajfja
    ffdsafsfafasf
    <!--start-->
    fdsafdsafdsfsafasf, jkl;jdfkajf;djf,dfsafsadf,
    <!--end-->
    </body>
    一个网页中的内容如上,现在有一个替换的JS代码,用来替换字母"a",但需求只能替换
    <!--start-->
    fdsafdsafdsfsafasf, jkl;jdfkajf;djf,dfsafsadf,
    <!--end-->
    中的“a”,而不能替换标签外的a,而并不是要把
    <!--start-->..<!--end-->付到变量中执行,请大家请教 
     </textarea>
     
     <script language="vbScript"  >
     
    dim bbb,bbb2
    bbb=aaa(textarea1.value) 
    bbb2=replace(bbb,"a","A")
    msgbox bbb2
     function aaa(x)
    dim re,mmm,m,i
    set re = new RegExp
    re.Pattern = "<!--start-->[^>]*<!--end-->"
    re.Global = true
    re.IgnoreCase = true
    set mmm = re.execute(x)
    for each m in mmm
    i = i + 1
    aaa = aaa & i & "-》" & m & vbcrlf
    next
    set re =nothing
    end  function </script>