2012-02-22 2 views
1

우리 응용 프로그램에서 사용하는 tinyMCE 편집기에 대한 맞춤법 검사 대화 상자를 만들고 있습니다.HTML 태그를 잃지 않고 HTML 태그가 포함 된 단어를 대체하려면 어떻게해야합니까?

나는 모든 단어 대체가 결정된 단계에 있으며 지금은 텍스트 영역의 innerHTML에 변경 사항을 적용해야합니다.

내 관심사는 단어 내에있을 수있는 마크 업을 처리 할 수 ​​있다는 것입니다. 나는 "일부 단어"와 같은 단어를 대체하고 싶었 예를 들어

을 (사용자가 신뢰할 수 없기 때문에) 나는 어떤 방식으로 <B> 태그 some<b>word</b>을 처리해야 할거야. > myreplacement
그래서 mewo 번째 - -> myreplacement
일부 단어 - 아마

일부 단어 ... 너무 좋아> myreplacement
그래서 mewo 번째 - >myreplacement

<b>some</b>word  -> <b>myreplacement</b> 
so<b>mewo</b>rd  -> myreplacement 
some<b>word</b>  -> myreplacement<b></b> 
<b>so<i>mewo</b>rd</i> -> <b>myreplacement</b><i></i> 

단락 넓은 서식을 지우지 않는 한 실제로는 상관하지 않습니다.

파서를 유일한 옵션으로 구축하고 있습니까?

+1

넵, 또는 일부 미친 정규식. –

+0

@Diodeus :이를 위해 어떤 파서가 필요합니까? 나는 그것을 얻지 않는다. –

+0

HTML에서 정규 표현식을 사용하지 마십시오. – 472084

답변

0

무겁고 중요한 작업을 위해 HTML 정수기를 사용합니다.

그런 다음 분리 된 단어를 얻으려면 공백이있는 곳에서 내용을 나누십시오.

이렇게하면 정규 표현식을 사용하여 문자열의 시작과 끝에서 태그를 가져올 수 있습니다.

그런 다음 "strip_tags"함수를 적용하여 단어 중간에있는 나머지 태그를 제거하십시오.

마지막으로 대체 단어를 적용 할 "누드"단어가 있습니다. 교체가 필요하지 않으면 원래 문자열을 그대로 유지할 수 있습니다. 그렇지 않으면 ...

다음으로 시작 태그와 종료 태그를 되돌릴 수 있습니다.

중간에 태그를 넣으려면 "strip_tags"단계에서 태그를 가져와야합니다 (어쩌면 strip_tags 대신 regex를 사용하거나 strip_tags 결과를 원래 단계와 비교할 수 있습니다).). 이러한 태그는 대체 된 단어 뒤에 또는 이전에 배치해야합니다.

단어 조각을 함께 결합하는 것도 쉬운 또 다른 부분입니다.

0

검색 대상은 tinymce와 함께 제공되는 search/replace-plugin과 같습니다. 이 작은 플러그인의 소스 코드를 살펴보고이 플러그인의 기능을 검색 및 대체 할 수 있음을 알게 될 것입니다.

+0

Oooh, 나는 그것을 조사 할 것입니다. –