2010-05-13 6 views
3

div 태그가 여러 span 태그와 div 태그 내에 중첩되어 있습니다.Div 태그를 제거하는 정규식

JavaScript에서 div 태그를 제거하고 그 안에 내용을 가져 오는 정규 표현식이 필요합니다.

+1

해야 할 것 :

replace(/<div[^>]*?>[\s\S]*?<\/div>/gi, "") 

를 참조하십시오 문자열로 작업해야하거나 DOM으로 작업 할 수 있습니까? 예를 들어 줄 수 있습니까? – Gumbo

+1

아마 regexes가 아닌 html 파서를 사용해야합니다 .... http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454를 참조하십시오. javascript 당신은 DOM 접근 함수를 사용할 수 있어야합니다. –

답변

2

정규 표현식은 중첩을 처리 할 수 ​​없으며 최소한 JavaScript 정규식은 사용할 수 없습니다 (.NET 및 PCRE와 마찬가지로 처리하기 쉽지 않음).

한 바깥 쪽 <div> 태그가있는 경우에만 작동 할 수 - 다음 정규 표현식

/<div>.*<\/div>/s` 

문서에 </div> 맨 마지막에 <div> 맨 처음에 이르기까지 모든 것을 일치합니다.

6

문서에서 <div> 요소를 제거 하시겠습니까?

첫 번째 사항 먼저; DOM을 배우십시오!

var aReferenceToMyDiv = document.getElementById('foo'); 
aReferenceToMyDiv.parentNode.removeChild(aReferenceToMyDiv); 

... 다음 DOM 구조에 적용 할 때 <div> 요소를 제거합니다 :

<div id="foo"> 
    <span>...</span> 
    other stuff... 
</div> 
관련 문제