2011-05-16 6 views
1

을 제거 나는 다음과 같은 스크립트가 :정규식 비틀기 : 브래킷

$(".Text").contents().each(function() { 
    $(this).replaceWith($(this).text() 
      .replace(/\[([^\]]*)\]/g, '<span class="IT_Symbol" style="display:inline;border: 1px solid blue;">$&</span>') 
     ); 
    }); 

그것은 대괄호 사이에 아무 것도 찾아 클래스로 랩을. 요소 스타일은이 스크립트가 doubleclick에 의해 트리거되므로 작동하는 것을 볼 수 있습니다. 현재는 대괄호 사이의 모든 것을 대괄호를 포함하여 찾습니다. 가능하다면 대괄호를 제거하고 싶지만 그 사이에있는 것을 유지하고 싶습니다.

+0

@ianace 코드를 편집하려면 불법적 인 자바 스크립트로 바꾸지 마십시오! – lonesomeday

답변

2

일치하는 전체 텍스트 인 $&으로 바뀝니다. 대체적으로 $1으로 바꾸면이 값은 ([^\]]*) 인 첫 번째 그룹과 일치하므로 주변 괄호는 제외됩니다.

$(".Text").contents().each(function() { 
    $(this).replaceWith($(this).text().replace(/\[([^\]]*)\]/g, '<span class="IT_Symbol" style="display:inline;border: 1px solid blue;">$1</span>')); 
});