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' 以防万一,我假设它总是在行的开头,所以添加一个匹配行 start ( ^),然后http,然后是零或一s 字符 ( 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 回答