2013-07-26 2 views
0

나는 HTML 입력을 방지하고자하는 내 웹 사이트에 텍스트 상자가 있습니다. 분명히 이미 서버 측에서 차단하지만 여러 이유 때문에 javascript를 사용하여 차단하려고합니다. 나는 준비된 기능을 사용할 수 있는지 알아보기 위해 빠른 Google 검색을 수행했지만 아무 것도 찾을 수 없었습니다.Javascript를 사용하여 HTML 확인하기

누구든지이 작업을 수행하는 방법을 알고 있습니까?

편집 : 질문이 분명하지 않은 경우 죄송합니다. 나는 기본적으로 사용자가 HTML을 텍스트 상자에 입력 한 다음 양식을 제출하려고 할 때 오류를 표시하려고합니다. 서버는 이미 텍스트 상자에서 HTML 입력을 거부하도록 프로그래밍되어 있지만 클라이언트 측에서 HTML 입력을 차단하고 싶습니다.

+0

사용자가 입력하지 않으시겠습니까 ?? –

+3

블로킹 문자를 '<' '>'과 같은 것으로 생각하십니까? – DontVoteMeDown

+0

이 질문을 이해할 수 없습니까? 입력을 비활성화하는 중입니까? 또는 HTML 마크 업을 방지하려고합니까? –

답변

2

HTML

<textarea id='noHTML'></textarea> 

JS

var ta = document.getElementById('noHTML'); 

ta.onkeyup = function (e) { 
var val = this.value; 


    // alternate regexp /<\/*(p|div|span)\s*.*>/g 
    // fill the above regex with all html tags 
if(val.match(/<\/*[^<>]\s*.*>/g)) { 
    // alert('no html'); 
    // don't want an alert ? you can replace all html expressions 

    // alternate syntax for all entities 
    // this.value = val.replace(/&/g, "&amp;").replace(/>/g, "&gt;").replace(/</g, "&lt;").replace(/"/g, "&quot;"); 
    // its long and slow but the choice is yours 
    this.value = val.replace(/</g, '&lt;').replace(/>/g, '&gt;'); 
} 

} 

테스트하고 jsfiddle에서 함께 재생할 수 있습니다;

문제의 간단한 해결책입니다. 양식을 제출할 때 엔티티를 교체하거나 입력을 원치 않을 경우 사용자에게 알릴 수 있습니다.

+0

하지만 태그가 존재하는 경우 게시를 막으려 고합니다. 특수 문자를 HTML 엔터티로 대체 할 수없는 이유는 무엇입니까? –

+0

@IanClark 나는 그것을 편집 할 것입니다 ... hold up –

+0

잘못 입력하지 마십시오. 사용자가 게시를 중단하고 싶다면 좋은 해결책이 될 수 있지만 [this] (http : /stackoverflow.com/questions/784586/convert-special-characters-to-html-in-javascript)를 사용하여 필요한 모든 문자를 변경하십시오. –

관련 문제