2011-08-05 15 views
16

फ़िल्टर करें मैं RegExp ऑब्जेक्ट का उपयोग करने के लिए संघर्ष कर रहा हूं ताकि मुझे गतिशील रूप से अभिव्यक्ति बनाने की अनुमति मिल सके, और इसे तत्वों के समूह पर लागू किया जा सके।गतिशील रूप से एक नियमित अभिव्यक्ति बनाने के लिए RegExp का उपयोग करके, और सामग्री

Here is a jsFiddle, नीचे दिए गए कोड है:

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

    }) 

उत्तर

31

जावास्क्रिप्ट स्वचालित रूप से कहते हैं "/" अंत और अभिव्यक्ति की शुरुआत में। उन्हें अपने स्ट्रिंग से निकालें, 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

मैं तुम्हें चूम सकता है। –

+12

अधिक सटीक रूप से, '/' रेगेक्स शाब्दिक को इंगित करता है लेकिन इसका हिस्सा नहीं है, जैसे '" एक स्ट्रिंग अक्षर को इंगित करता है, लेकिन स्ट्रिंग का हिस्सा नहीं है। – Phrogz

संबंधित मुद्दे

 संबंधित मुद्दे