我想把textarea的数据
双引号里的单引号替换成'   双引号不变,
单引号里的双引号替换成"  单引号不变。
其它普通的字符串不变,"ssssssssssssssssss", 'sssssssssssssssssssssss', 这样的都不换
//双引号里的单引号
if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
       //双引号里的单引号匹配成 throw "type property can't be changed";
        throw "type property can't be changed";
       elem[ name ] = value;
}
//双引号里的单引号匹配成 alert("can't be changed");
alert("can't be changed");//单引号里的双引号
if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
       //匹配成 throw 'type "property" cant be changed';
        throw 'type "property" cant be changed';
       elem[ name ] = value;
}
//匹配成 alert('cant be"""" changed');
alert('cant be"""" changed');<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
        <META http-equiv="Content-Style-Type" content="text/css">
    </head>
    <script language=javascript>
function goit(){
       var s=document.getElementById("m").innerHTML; 
       var matchx = /\n/;
       var arr = s.split(matchx);
       //?????
       document.getElementById('result').innerText = arr.join(',');
}
       
    </script>
    <body>
        <form method="post" name="form1">
            <div align="center">
                <textarea rows="18" name="S1" style="width:100%" id="m">
                   if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
            throw "type property can't be changed";
            elem[ name ] = value;
           }
            alert("can't be changed");
           if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
            throw 'type "property" cant be changed';
            elem[ name ] = value;
           }
               alert('cant be"""" changed');
                </textarea>
            </div>
            <input type="button" value="HTML" onclick="return goit()" />
            <input type="reset" value="清空内容" />
        </form>
        
        <div id="result"></div>
    </body>
</html>

解决方案 »

  1.   

    试试这个吧<html>
        <head>
            <meta http-equiv="content-type" content="text/html; charset=utf-8">
            <META http-equiv="Content-Style-Type" content="text/css">    </head>
        <script language=javascript>function goit(){
           var s=document.getElementById("m").innerHTML;      var matchx=/\n/;
          var match1=/.+'.+"/g;
          var match2=/.+".+'/g;      var a=s.split(matchx);
          var ret=[];
          var tmp;
          for(var i=0;i<a.length;i++){
             if(match1.test(a[i])){
                ret[i]=a[i].replace(/"/g,"&quot ")
             }else if(match2.test(a[i])){
              ret[i]=a[i].replace(/'/g,"&acot ");
             }else{
                  ret[i]=a[i];
             }
          }
          alert(ret)       document.getElementById('result').innerText = ret.join(",");
    }
            window.onload=function(){
            }    </script>
         <body>
            <form method="post" name="form1">
                <div align="center">
                    <textarea rows="18" name="S1" style="width:100%" id="m">
                       if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
                throw "type property can't be changed";
                elem[ name ] = value;
               }
                alert("can't be changed");
               if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
                throw 'type "property" cant be changed';
                elem[ name ] = value;
               }
                   alert('cant be"""" changed');
                    </textarea>
                </div>
                <input type="button" value="HTML" onclick="return goit()" />
                <input type="reset" value="清空内容" />
            </form>        <div id="result"></div>
        </body>
    </html>
      

  2.   

    少了点,是这样才对<html>
        <head>
            <meta http-equiv="content-type" content="text/html; charset=utf-8">
            <META http-equiv="Content-Style-Type" content="text/css">    </head>
        <script language=javascript>function goit(){
           var s=document.getElementById("m").innerHTML;      var matchx=/\n/;
          var match1=/.+'.+".+'/g;
          var match2=/.+".+'.+"/g;      var a=s.split(matchx);
          var ret=[];
          var tmp;
          for(var i=0;i<a.length;i++){
             if(match1.test(a[i])){
                ret[i]=a[i].replace(/"/g,"&quot ")
             }else if(match2.test(a[i])){
              ret[i]=a[i].replace(/'/g,"&acot ");
             }else{
                  ret[i]=a[i];
             }
          }
          alert(ret)       document.getElementById('result').innerText = ret.join(",");
    }
            window.onload=function(){
            }    </script>
         <body>
            <form method="post" name="form1">
                <div align="center">
                    <textarea rows="18" name="S1" style="width:100%" id="m">
                       if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
                throw "type property can't be changed";
                elem[ name ] = value;
               }
                alert("can't be changed");
               if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
                throw 'type "property" cant be changed';
                elem[ name ] = value;
               }
                   alert('cant be"""" changed');
                    </textarea>
                </div>
                <input type="button" value="HTML" onclick="return goit()" />
                <input type="reset" value="清空内容" />
            </form>        <div id="result"></div>
        </body>
    </html>
      

  3.   

    谢谢 BeenZ大兄弟了
    请教下多行注释匹配的问题
    你看,我写的代码有问题呢
    , /*
    , *
    , * $Date: &#39;2008-05-24&#39; 1&quot;4:22:17 &quot;-0400 (Sat, 24 May 2008) $
    , * $Rev: 5685 $
    , */                        
    ,  <script>
    不是以/*开头, */结尾的不能匹配
    ,*******************&quot;ssssssssssssssssss&quot;******
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
        <html>
            <head>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
                <title></title>
                <script type="text/javascript">
                    function goit(){
                        var s = document.getElementById("m").value;
                        var matchx = /\n/;
                        var m1 = /\/\*.+'.+\*\//g;
                        var m2 = /\/\*.+".+\*\//g;
                        var m3 = /\*.+'.+/g;
                        var m4 = /\*.+".+/g;
                      
                        var a = s.split(matchx);
                        //alert(a);
                        var ret = [];
                        var tmp;
                        for (var i = 0; i < a.length; i++) {
                            if (m1.test(a[i]) || m2.test(a[i]) || m3.test(a[i]) || m4.test(a[i])) {
                                tmp = a[i].replace(/'/g, "&#39;");
                                ret[i] = tmp.replace(/"/g, "&quot;");
                            } else {
                                ret[i] = a[i];
                            }
                        }
                        var result = ret.join(",");
                        document.getElementById('result').innerText = result;
                    }
                </script>
            </head>
            <body>
                <form method="post" name="form1">
                    <div align="center">
                        <textarea rows="18" name="S1" style="width:100%" id="m">
                            
                        </textarea>
                    </div>
                    <input type="button" value="HTML" onclick="return goit()"/><input type="reset" value="清空内容" />
                </form>
                <div id="result">
                </div>
            </body>
        </html>
      

  4.   

    这个也不行呢var reg = /\/\*[\S\s]+?\*\//g;
                      
                        var a = s.split(matchx);
                        //alert(a);
                        var ret = [];
                        var tmp;
                        for (var i = 0; i < a.length; i++) {
                            if (reg.test(a[i])) {
                                tmp = a[i].replace(/'/g, "&#39;");
                                ret[i] = tmp.replace(/"/g, "&quot;");
                            } else {
                                ret[i] = a[i];
                            }
                        }
                        var result = ret.join(",");
    alert(result);
      

  5.   


    换成
    var reg=/\/\*([\S\s]*?)\*\//;
    试试,这个是匹配/**/型的
      

  6.   


    还有,匹配/**/时候直接用
    var s = document.getElementById("m").value;
    整个s来匹配,不用分解成单行
      

  7.   


    <html>
        <head>
            <meta http-equiv="content-type" content="text/html; charset=utf-8">
            <META http-equiv="Content-Style-Type" content="text/css">    </head>
        <script language=javascript>        function goit(){
                var s=document.getElementById("m").innerHTML;
                var reg=/\/\*([\S\s]*?)\*\//g;
                var tmp=s.match(reg);         
                alert(tmp)
            }
            window.onload=function(){
            }    </script>
        <body>
            <form method="post" name="form1">
                <div align="center">
                    <textarea rows="18" name="S1" style="width:100%" id="m">
                       if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
                throw "type property can't be changed";
                elem[ name ] = value;
               }
                /*alert("can't be changed");
               if ( name == 'type' && jQuery.nodeName( elem, 'input' ) && elem.parentNode ) {
                throw 'type "property" cant be changed';*/
                elem[ name ] = value;
               }
                   alert('cant be"""" changed');
                    </textarea>
                </div>
                <input type="button" value="HTML" onclick="return goit()" />
                <input type="reset" value="清空内容" />
            </form>        <div id="result"></div>
        </body>
    </html>
      

  8.   


    var s=document.getElementById("m").innerHTML;
    var reg = /(\/\/.*?\n)|(\/\*[\S\s]+?\*\/)/gi;
                        
                s = s.replace(reg, function(s, s1, s2){
                 return s.replace(/'/g, "&#39;").replace(/"/g, "&quot;");
                });
    document.getElementById('result').innerText = s;这种匹配速度好像比按行匹配速度快呀!!!
      

  9.   

    有意思
    var s="\"1'2'3\",'4\"5\"6','789',\"abc\"";
    var reg=/"([\S\s]*?)"|'([\S\s]*?)'/gi;
    s=s.replace(reg,function(s,s1,s2){
        return s1?s.replace(/'/g,"&#39;")
                 :s.replace(/"/g,"&quot;");
    });alert(s);