2013-09-15 3 views
0

var ara = 'facebook.com';Функция поиска и замены JQuery

$("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'); 
     } 
    }) 

, как я могу найти deteced из может быть регулярное выражение, как я буду делать?

<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> 
+0

Почему бы не использовать регулярное выражение? – abc123

+0

Когда вы повторяете каждый элемент, используйте .html(), чтобы получить текст. Затем просто проверьте текст, чтобы узнать, соответствует ли оно вашему регулярному выражению. – CodePuppet

ответ

0

Вы можете использовать регулярные выражения, но в этом случае вам придется бежать точку в имени, как это специальный символ в регулярном выражении (на самом деле он будет по-прежнему в основном работают без этого, но лучше сделать это, а не быть пойманным с странным случаем один раз).

Простейшим является выражение совпадает с «//», то матч все, что это не «/» ([^/]*), а затем целевой строки, например:

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

Вероятно, мы должны соответствовать начальный «http»/«https» на всякий случай, я собираюсь предположить, что он всегда находится в начале строки, поэтому добавьте совпадение для начала строки (^), затем 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)); 
    } 

}); 
Смежные вопросы