2011-02-04 5 views
0

클릭 한 링크 된 경로를 다른 링크와 일치 시키려고합니다. 그것은 전혀 작동하지 않습니다. 여기에 코드가 있습니다. href starts with the regex를 링크해야합니다.정규 표현식 값이 jquery와 일치하지 않습니다.

$('#taxonomylist ul li a').click(function() { 
     $href = $(this).attr("href"); 
     $regex = new RegExp("^"+$href); 
     $('#taxonomylist ul li').each(function() { 
     $href_sub = $("a", this).attr("href"); 
     if ($href_sub.match($regex)) 
     { 
     $(this).css("display", "block"); 
     } 

     }); 
     return false; 
     }); 

는 여기에 내가 불을 지르고에있어 무엇 :

$href = "/?q=category/activity/test" 
$href_sub = "/?q=category/activity/test/lamp" 
$regex = /^\/?q=category\/activity\/test/ 

모든 찾을 보이지만, 예상대로 작동하지 않습니다. regex에 의한 일치를 제거하면 모든 것이 잘 작동합니다 (필터링 없이는).

편집 :

지금은 부분적으로 작동이 만 모든 링크에 CSS 속성을 할당 할뿐만 아니라 값과 일치하는. 누구든지 문제가 보이나요? 정규식 당신의 문자열과 일치 경우

$('#taxonomylist ul li a').click(function() { 
$href = $(this).attr("href"); 
$regex = new RegExp("^"+$href); 
$('#taxonomylist ul li').each(function() { 
$href_sub = $("a", this).attr("href"); 
if ('$href_sub:contains($href)') 
{ 
$(this).css("display", "block"); 
} 

}); 
return false; 
}); 
+2

도움이되기를 바랍니다. 대신에'.indexOf'를 사용하십시오. –

답변

1

check this

사용 indexOf(//value to search) 당신이하고있는 모든 값의 시작을 일치, 정규식 잔인한 경우가

+0

작동하지 않습니다. 아직도 모든 것을 보여줍니다. 그냥 제대로 실행되지 않습니다. 참조 : http://jsfiddle.net/yNJKj/4/ – user194076

+0

@ user194076 답변을 업데이트했습니다. – Rafay

+0

정말 고마워요. 마침내 작동합니다! 정말 고마워. – user194076

2

당신은 요구하고 있기 때문에. 당신의 정규식 이상 (귀하의 예를 기준)과 같아야 의미 :

$regex = /^\/?q=category\/activity\/test\/\w+/ 

당신은 대신 :contains() 선택기를 사용 할 수 있습니다.

일치를위한

+0

감사합니다. 이것은 부분적으로 문제를 해결합니다. 오류를 찾을 수 없습니다. 링크를 클릭하면 일치하는 패턴뿐만 아니라 다른 모든 링크가 표시됩니다. 오류가 있습니까? 코드는 페이지 상단에 있습니다 – user194076