就是找出串中<a>与</a>之间“\'”或“'”,替换成“\'”。

解决方案 »

  1.   

    看看是否符合要求?
    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>原字符替换字符</title>
    </head><body>
    <script language=javascript>function repl_test()
    {
     var str=f1.t1.value;
     var re=/<a>\S*<\/a>/g;
     var arr=re.exec(str);
     if(arr!=null)
     {
        str=str.replace(re,"|||");
       for(var i=0;i<arr.length;i++)
        {
         alert(arr[i]);
         alert(/[^\\]'/g.test(arr[i]));
         arr[i]=arr[i].replace(/\\'/g,"'");
         arr[i]=arr[i].replace(/'/g,"\\'");
         str=str.replace("|||",arr[i]);
         }
     }
      
     f1.t2.value=str;}
    </script><form name=f1>原字符<input name=t1>替换字符<input name=t2>
    <input value="替换" type=button onclick="repl_test()"></form>
    </body></html>
      

  2.   

    谢谢,对于一下情况不能正确分析,另难道没有更简单高效的方法吗?
    a'<a>as\'sa's'</a>a'<a>as\'s'a's'</a>q21'1
      

  3.   

    再看看呢?
    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>原字符替换字符</title>
    </head><body>
    <script language=javascript>function repl_test()
    {
     var str=f1.t1.value;
     var re=/(<a>[a-zA-Zs\\\d']*<\/a>)/g;
     var arr=re.exec(str);
     if(arr!=null)
     {
        str=str.replace(re,"|||");
       for(var i=0;i<arr.length;i++)
        {
         alert(arr[i]);
         alert(/[^\\]'/g.test(arr[i]));
         arr[i]=arr[i].replace(/\\'/g,"'");
         arr[i]=arr[i].replace(/'/g,"\\'");
         str=str.replace("|||",arr[i]);
         }
     }
      
     f1.t2.value=str;}
    </script><form name=f1>原字符<input name=t1>替换字符<input name=t2>
    <input value="替换" type=button onclick="repl_test()"></form>
    </body></html>
      

  4.   

    不是吧?用上下则转换后就得你需要的结构呀,怎么不对呢?
    输入字符:
    a'<a>as\'sa's'</a>a'<a>as\'s'a's'</a>q21'1
    转换结果:
    a'<a>as\'sa\'s\'</a>a'<a>as\'sa\'s\'</a>q21'1
    这不是你需要的?
      

  5.   

    错了,需要:a'<a>as\'sa\'s\'</a>a'<a>as\'s\'a\'s\'</a>q21'1
    你的错误在这一句:    str=str.replace(re,"|||");
    应该用别的变量存储,比如strx=str.replace(re,"|||");我更关心或者多更想要更简单高效的方法,利用复杂一点的表达式嵌套不知道怎样?我还没试出来。