2011-08-05 4 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

관련 문제