谁能给出下面正确的解呢
如下的代码,如何用正则表达式正确的去除注释:
var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
var kk = "// sljdf/*sdf*/ljsdf'; // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"
var kk = '// sljdf/*sdf*/ljsdf'; // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"
var kk = '// sljdf/*sdf*/ljsdf'; // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"

解决方案 »

  1.   

    就是把这段代码做一个串来处理,用正则表达式正确去除注释
    例如:
    var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
    var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
    var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
    var kk = "// sljdf/*sdf*/ljsdf' // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"
    var kk = '// sljdf/*sdf*/ljsdf'; // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"
    var kk = '// sljdf/*sdf*/ljsdf'  // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"
    处理后为:
    var kk = "// sljdfljsdf";
    var kk = "// sljdfljsdf"; 
    var kk = "// sljdfljsdf";
    var kk = "// sljdf/*sdf*/ljsdf'
    var kk = '// sljdf/*sdf*/ljsdf'; 
    var kk = '// sljdf/*sdf*/ljsdf'  
      

  2.   

    kk.replace(/^\/\/\\*w+$/,'');
    不知道行不!!!
      

  3.   

    正则表达式如下:
       //(?<=;\s*//)[^\n]+
      

  4.   

    kk.replace(/\/\/(?<=;\s*//)[^\n]+/,'');
      

  5.   

    <span id="text" style="display:none">
    <pre>
    var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
    var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
    var kk = "// sljdfljsdf"; // *skldflsfllk"sdlf//sdfdsf"
    var kk = "// sljdf/*sdf*/ljsdf' // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"
    var kk = '// sljdf/*sdf*/ljsdf'; // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"
    var kk = '// sljdf/*sdf*/ljsdf' // *sk/*fdsf*/ld""flsfllk"sdlf//sdfdsf"
    var kk = new Object(); //test
    </pre>
    </span><script>
    var reg = /([^'"\/\n]*(['"]?).*?[^\\]\2(?:\s*;\s*|\s+))(?:\/\/.*|\/\*.*\*\/\s*)(\n|$)/g;
    var kk = document.getElementById("text").innerText;
    alert("处理前:\n" + kk);
    alert("处理后:\n" + kk.replace(reg, "$1$3"));
    </script>
      

  6.   

    http://community.csdn.net/Expert/topic/5541/5541735.xml?temp=.7890283
    参考一下~~~~~~~~
      

  7.   

    用java实现可以用正则表达式\s+\/\/\s+\*.+\/\/\w+\"import java.util.regex.Pattern;
    import java.util.regex.Matcher;
    import java.util.Arrays;public class TestRegex {
            
        /**
         * Creates a new instance of <code>TestRegex</code>.
         */
        public TestRegex() {
        }
        
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
         String regEx="\\s+\\/\\/\\s+\\*.+\\/\\/\\w+\"";
         String oldCode="var   kk   =   \"//   sljdfljsdf\";   //   *skldflsfllk\"sdlf//sdfdsf\"\r\nvar   kk   =   \"//   sljdfljsdf\";   //   *skldflsfllk\"sdlf//sdfdsf\"\r\nvar   kk   =   \"//   sljdfljsdf\";   //   *skldflsfllk\"sdlf//sdfdsf\"\r\nvar   kk   =   \"//   sljdf/*sdf*/ljsdf \";   //   *sk/*fdsf*/ld\"\"flsfllk\"sdlf//sdfdsf\"\r\nvar   kk   =   \"//   sljdf/*sdf*/ljsdf \";   //   *sk/*fdsf*/ld\"\"flsfllk\"sdlf//sdfdsf\"\r\nvar   kk   =   \"//   sljdf/*sdf*/ljsdf \";   //   *sk/*fdsf*/ld\"\"flsfllk\"sdlf//sdfdsf\"";
            Pattern patter=Pattern.compile(regEx);
            Matcher m=patter.matcher(oldCode);
            StringBuffer newCode=new StringBuffer();
            while (m.find()) {
             System.out.println(m.group());
             m.appendReplacement(newCode,"");
            }
            m.appendTail(newCode);
            System.out.println("oldCode:"+oldCode+"\nNewCode:");
            System.out.println(newCode);
        
            // TODO code application logic here
        }
    }试过了结果真确