maç "/ /"

0 Cevap php

I need to match and replace some comments. for example:

$test = "the url is http://www.google.com";// comment "<-- that quote needs to be matched

Ben tırnak dışında yorumları maç ve s '&quot; ile açıklamalarda s' herhangi bir " değiştirmek istiyor.

Ben ancak hayır şans ile desen ve bunları çalıştıran farklı şekillerde bir dizi denedim.

Regex php "/ /" yorumu maç için javascript ile çalıştırmak olacaktır

UPDATE: I took the regex from borkweb below and modified it. used a function from http://ejohn.org/blog/search-and-dont-replace/ and came up with this:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript">
            function t_replace(data){
               var q = {}, ret = "";
                data.replace(/(?:((["'\/]*(("[^"]*")|('[^']*'))?[\s]*)?[\/\/|#][^"|^']*))/g, function(value){
                    q[key] = value;
                });
                for ( var key in q ){
                    ret =  q[key];
                }
                var text = data.split(ret);
                var out = ret + text[1];
                out = out.replace(/"/g,"&quot;");
                out = out.replace(/'/g,"&apos;");
                return text[0] + out;
            }
        </script>
    </head>
    <body>
        <script type="text/javascript">
            document.write(t_replace("$test = \"the url is http://www.google.com\";// c'o\"mment \"\"\"<-- that quote needs to be matched")+"<br>");
            document.write(t_replace("$test = 'the url is http://www.google.com';# c'o\"mment \"\"\"<-- that quote needs to be matched"));
        </script>
    </body>
</html>

tek veya çift tırnak dışındaki tüm çizgi yorumları işler. Zaten ben bu fonksiyonu optimize var mı acaba?

UPDATE 2: it does not handle this string

document.write(t_replace("$test //= \"the url is http://www.google.com\"; //c'o\"mment \"\"\"<-- that quote needs to be matched")+"<br>");

0 Cevap