2014-01-12 2 views
0

나는 바꾸는 방법을 알고있다 & replaceWith하지만 다른 것을해야한다.html 태그를 문자열 안에 넣고 텍스트는 그대로두고 사용자 정의 태그로 다시 감싼다

예 문자열 :

<span class="highlight_grey">example:</span> some additional text 
& <span class="highlight_grey">again...</span> and to wrap up some 
regular <span>span.. no class here</span> 

원하는 결과 : I 전체 랩을 교체하고 텍스트를 유지해야하기 때문에

[highlight color="default"]example:[/highlight] some additional text 
& [highlight color="default"]again...[/highlight] and to wrap up some 
regular <span>span.. no class here</span> 

element.replace 여기에 작동하지 않습니다.
replaceWith도 문자열을 사용해야하고 다시 바꿔 넣기 때문에 도움이되지 않습니다.
줄 바꿈 요소.

당신의 도움이

답변

1

EDIT 감사하겠습니다 : 죄송합니다, 나는 문자열의 나머지 부분을 발견하지 않았습니다. 어쨌든 :

http://jsfiddle.net/WJTb7/4/

HTML :

<div id="test"> 
<span class="highlight_grey">example:</span> some additional text & <span class="highlight_grey">again...</span> 
</div> 

및 JS :

var oldHtml = document.getElementById('test').innerHTML, 
    newHtml; 

newHtml = oldHtml.replace(/<span class="highlight_grey">(.*?)<\/span>/gi, '[highlight color="default"]$1[/highlight]') 

alert(newHtml); 
+0

것은 .. 내가 단지를 대상으로 필요) 어쩌면 내가 선에 그 휴식해야합니까? (예를 스크롤 ... 당신은 관련이없는 닫는 스팬 태그를 교체하는 교체 원하는 스팬 ... 그게 왜 내면의 텍스트를 유지 썼다. .. 어쨌든 당신을 도와 줘서 고마워. –

+0

죄송합니다. 남은 부분을 눈치 채지 못했습니다. 이제 수정되었습니다. – LorDex

+0

그 것이 아름답게 작동합니다! 덕분에 ... "(. *?)"를 변수로 사용하는 방법에 대해 배울 것입니다 (어떻게하면 시간 절약 팁을 얻었습니까?). 모든 경우에 감사드립니다. –

1

이 예는 손으로 무거운 보인다 나는 그것이 더 prett'ified 버전으로 줄일 수있다 내기. Lordex는 좀 더 간소화되었습니다. 나는 범위를 포착한다. 아마 필요가 없습니다.

// of course, for txt - you'd just use document.getElementById('test').innerHTML, 
var txt = '<span class="highlight_grey">example:</span> some additional text & <span class="highlight_grey">again...</span><span> .. MORE SPAN TEXT </span>' 


txt.replace(/(\<span class="highlight_grey"\>)(.*?)(\<\/span>)/g,function(_,$1,$2,$3){ return '[highlight color="default"]' + $2 + '[/highlight]'; 

}) 두 번째에서

// output 
// "[highlight color="default"]example:[/highlight] some additional text & [highlight color="default"]again...[/highlight]<span> .. MORE SPAN TEXT </span>" 
+1

당신의 도움을위한 감사합니다, 저 다른 녀석은 처음왔다;) 그러나 감사 나는 그것을 전한다. –