[자작] 태그 제거하기

function removeTag(str) {
	var pos1 = str.indexOf('<');

	if (pos1 == -1) return str;
	else {
		var pos2 = str.indexOf('>', pos1);

		if (pos2 == -1) return str;
		return removeTag(str.substr(0, pos1)+str.substr(pos2+1));
	}
}

텍스트에서 태그를 제거해주는 함수.
태그를 제거해준다고는 하지만, 실은 < 와 > 로 둘러싸인 문자열을 모두 없애는 거다.

급하게 쓸 일이 있어서 만들었음.

  1. 헉!
    바로 제가 찾던겁니다.
    어떻게 strip_tags를 자바스크립으로 구현할까? 하고 고민하다 포기했는데,..
    감사합니다.
    str_replace도 있으면 좋겟군요, 배열까지 지원되는,..
    그냥, 부탁은 아니고요, 있으면 좋겟다는..ㅡㅜ;;;

  2. ㅎㅎ 맞아요.
    뭐 좋은인연님꼐서 필요하다 하시길래 겸사겸사 재미삼아 만들어 봤어요.
    우히히~~

  3. 감사합니다.
    php에서 str_replace와 똑같이 배열요소별로 치환이 되는군요..
    그동안, 스킨에서 php로 str_replace함수가 5~6번씩 사용되었는데, 이부분을 클라이언트로 보낼수 있게 되겟군요..정말 감사합니다.

  4. 고니님
    태그 제거하기에서 다른것은 제거하되 br 태그만 남겨두고 할 수는 없는지요?
    br태그는 살려둬야 할 필요가 있어서 질의드립니다.
    꼭 알려주시면 감사하겠습니다.

  5. 안녕하세요. 다른 곳에서도 질의를 했던 문제인데 잘 해결이 안되네요..
    태그 제거함수 올려주신것을 에디터에 적용시킬때 궁금한 점이 있습니다. 아래 소스는 자바스크립트로 된 에디터 편집화면에서 일정한 블럭을 지정하고 지우기버튼을 눌렀을때 블록지정된 문자열에서 태그를 지우려고 하는 소스입니다.

    function Remove_Format(){
    var sRange;
    sRange = TextEditor.document.selection.createRange();
    var sHtml = sRange.htmlText;
    if (sHtml.length != “”) {//블록 지정한 부분이 있을때
    //요부분에 소스를 뭐라고 적어줘야 작동되는지 잘 안됩니다
    }
    }
    고니님이 올려주신 소스를 위의 에디터 소스에 어떻게 적어줘야 동작이 되는지 잘 모르겠습니다. 여러 방법으로 해봐도 잘 안되어 질문 드립니다.
    그리고 혹, br태그만 살려두는 방법도 가능한지요?…

  6. 테스트를 해보니 희한한 일은 Remove할 단어나 문장이 잇으면 고거보다 항상 한 스페이스정도 앞에까지 블록을 지정해야 Remove가 먹혀 들어간다는 점입니다. 예를 들면
    ‘가나다라마바사아’ 에서 마바를 파란색으로 변환했다가 Remove하려면, ‘라’에서부터 ‘마바’까지 블록을 지정해야 폰트컬러의 속성이 지워진다는 점입니다. 요거 왜그런지 이유를 모르겠습니다..ㅠㅠ.. 요문제만 해결되면 참 좋겠는데 어찌해야 할지 모르겠네요…

Leave a Reply