2013-08-01 3 views
1

텍스트 입력을 허용하고 div에 결과를 표시하는 REGEXP 도구를 사용하고 있습니다. 결과가 표시되면 <b >의 일치 항목을 </b >으로 바꿉니다. 원본 텍스트와 일치하면 문제가되는데 HTML 코드를 삽입 할 때javascript regexp에서 태그 바꾸기

<b> 태그를 제외한 모든 태그를 html 엔티티로 바꾸려면 어떻게 할 수 있습니까?

var regExpTool = { 
    makeRegexp: function(pattern, opts){ 
     var regexp = new RegExp(pattern, opts); 
     return regexp; 
    }, 
    createResults: function(pattern, string, opts){ 
     var res = string.replace(this.makeRegexp(pattern, opts), "<b>$&</b>") 

     results.style.display = "block"; 
     text.style.display = "none"; 
     results.innerHTML = res; 
    } 
} 

답변

0

아마도 코드는 더 같이 보일 것입니다 :

var win = window, doc = document, bod = doc.getElementsByTagName('body')[0]; 
function E(e){ 
    return doc.getElementById(e); 
} 
function regExpTool(text, outputElement){ 
    this.makeBold = function(options){ 
    outputElement.innerHTML = text.replace(new RegExp('^(<.+>)*('+text+')(<\/.+>)*$', options), '<b>$2</b>') 
    outputElement.style.display = 'block'; 
    }; 
} 

new regExpTool('<div>now</div>', E('wow')).makeBold(); 

주, 당신의 makeRegexp 방법에 대한 이유가 없다.

여기는 http://jsfiddle.net/PHPglue/FjEdg/2/입니다.

자동 닫기 태그에는 작동하지 않습니다.