2011-08-05 16 views
16

Dinamik olarak bir ifade oluşturmama izin vermek ve onu bir öğe grubuna uygulamak için RegExp nesnesini kullanmakta zorlanıyorum.Düzenli İfadeyi dinamik olarak oluşturmak ve içeriği filtrelemek için RegExp kullanma

Here is a jsFiddle aşağıdaki kod şudur:

<div id='selectors'><span>A-F</span><span>G-L</span><span>M-S</span><span>T-Z</span></div> 

<a hreh=#>Astring</a> 
<a hreh=#>Cstring</a> 
<a hreh=#>Xstring</a> 
<a hreh=#>Dstring</a> 
<a hreh=#>Zstring</a> 

$('div#selectors span').click(function(){ 
     expression = "/^["+$(this).html()+"].*$/"; 

     rx = RegExp(expression,'i'); 
     console.log(rx,'expression'); 
     $("a").each(function(){ 

        if($(this).html().match(rx) !== null){ 
         $(this).addClass('selected'); 
        } 
     }); 

    }) 

cevap

31

JavaScript otomatik ekler "/" sonu ve ifadenin başına. Example Here

$('div#selectors span').click(function() { 
    var expression = "^[" + $(this).html() + "].*$"; 
    var rx = new RegExp(expression, 'i'); 

    console.log(rx, 'expression'); 

    $("a").each(function() { 
     if ($(this).html().match(rx) !== null) { 
      $(this).addClass('selected'); 
     } 
    }); 

}); 
+5

seni öpebilirim, dizenizle onları çıkarın. –

+12

Daha doğru bir şekilde,// ​​'bir regex değişmezini belirtmektedir, ancak bunun bir parçası değildir, ''' bir dizgi değişmezini ifade eder, ancak dizenin bir parçası değildir. – Phrogz

İlgili konular