2011-02-03 3 views
2

정규식은 일반적으로 html 콘텐츠를 구문 분석하는 데 사용해서는 안된다는 것을 알고 있습니다. 내 특별한 경우에는 내가 그들을 필요로 (이유는, rte 편집기를 사용하고 편집기에 붙여 넣을 때 단락의 속성에 대한 대체가 수행되어야 함).단락에서 모든 속성을 제거하기위한 정규식

내가

<p attribute1="val1" attribute2="val2" attribut="val3" ...>text blah blah</p> 

같은 것을 가지고 내가

<p>text blah blah</p> 

어떻게

이이 정규식을 사용하여 수행 할 수 있습니다 얻을 수 있도록 내가 밖으로 제거 모든 속성을해야합니까?

가능한 모든 HTML 태그에서 속성을 제거하는 해결책도 높이 평가됩니다. 이 같은

답변

5

뭔가 모든 태그에 작동합니다 : 단락에 대한

replace(/<\s*(\w+).*?>/, '<$1>') 

만, 단지 \w 교체 : 처음에

replace(/<\s*p.*?>/, '<p>') 

\s*를 태그 이름 앞에 공백을 허용, 그래서 어떤 이유로 든 < p class="foo">이 있다면, 그것도 작동합니다. HTML 태그는 태그 이름 앞에 공백이없는 여러 줄에 걸쳐 계속 할 수 있기 때문에

+0

무엇을 단락에만 사용합니까? – Thariama

+0

은 매력처럼 작동합니다 - 고마워 +1 – Thariama

+0

'

'는 유효하지 않습니다. HTML – winhowes

0
perl -lpe 's/(<\w+)\s+[^>]*/$1/' 
+3

죄송합니다. 자바 스크립트를 보지 못했습니다. 꼬리표. Tatu의 sol'n과 함께 가면, 처음에는 공간이 허용됩니다. –

3

내가 대신이 추천 할 것입니다 :

replace(/<(\w+)(.|[\r\n])*?>/, '<$1>'); 

만 문단 :

replace(/<p\s+?(.|[\r\n])*?>/, '<p>'); 
+1

전체 HTML을 지우려면 g (/<(\w+)(.|[\r\n])*?>/g)를 추가해야합니다. – user3717718

관련 문제