0

var ara = 'facebook.com';

 $( "div:contains('"+ara+"')" ).each(function(){
     var ekle  = ' aaaaaaa >| ';
        veri = $(this).html();
        islenmis = veri.split(ara);

        if(islenmis[0]=='http://www.'||islenmis[0]=='https://www.'||islenmis[0]=='http://'||islenmis[0]=='https://'||islenmis[0]=='http://'||islenmis[0]=='http://'+regex(.*)){
         $(this).addClass('newClass');
        } 
     }) 

どうすれば検出された正規表現を見つけることができますか?

<span>https://tr-tr.facebook.com</span>
<span>http://en-en.facebook.com</span>
<span>http://anysite.com/facebook.com</span>(no want find this result)
<span>https://www.facebook.com</span>
4

1 に答える 1

0

正規表現を使用できますが、この場合、正規表現の特殊文字であるため、名前のドットをエスケープする必要があります (実際には、それがなくてもほとんど機能しますが、キャッチされるよりも実行するのが最善です)奇妙なケースで一度)。

最も単純なのは、「//」に一致し、次に「/」( [^/]*) 以外のすべてに一致し、その後にターゲット文字列が続く式です。次のようになります。

re = new RegExp("//[^/]*facebook\.com");

念のため、開始の 'http' / 'https' を一致させる必要があります。常に行の先頭にあると想定するので、行の開始 ( ^)、次にhttp、0 または 1の一致を追加します。 s chars ( s?)、次にコロン。

着信文字列をエスケープする場合 (変数でサイトを指定できるようにするため)、次の解決策を試してください: Simple jQuery / javascript method to escape special characters in string for regexp

facebook.com 用にハードコーディングされたソリューションは次のようになります。

$( "span:contains('facebook.com')" ).each(function(){

    re = new RegExp("^https?://[^/]*facebook\.com");

    if(re.test($(this).html())) {
        // Matched, do something ...
        console.log("MATCH: ",$(this));
    } else { 
        // Not matched, do something else (maybe) ... 
        console.log("NOMATCH: ", $(this));
    }

});
于 2013-09-16T05:33:38.480 に答える