2014-06-06 3 views
0

다음 단어를 입력 필드의 빈 공간으로 바꾸려면 다음 코드를 사용합니다.자바 스크립트를 사용하여 여러 단어 바꾸기?

그러나 빈 공간으로 여러 단어를 바꿀 수 있기를 바랍니다.

기본적으로 사용자가 특정 단어를 입력 할 수 없도록 단어 필터를 만들어야합니다.

HTML 코드

<input type="text" id="demo" name="demo" onkeyup="myFunction()" onkeydown="myFunction()" /> 

자바 스크립트 코드 :이 같은 뭔가를 시도했습니다

<script> 
function myFunction() { 
    var words = "badword1"; 
    var str = document.getElementById("demo").value; 
    var res = str.replace(words, " "); 
    document.getElementById("demo").value = res; 

} 
</script> 

:

<script> 
function myFunction() { 
    var words = "badword1 || badword2 || bad word3"; 
    var str = document.getElementById("demo").value; 
    var res = str.replace(words, " "); 
    document.getElementById("demo").value = res; 
    alert('that word is not allowed!'); 

} 
</script> 

하지만이 작동하지 않습니다.

먼저 badword(s)empty space으로 바꾸지 않고 두 번째 입력 필드에 첫 번째 문자를 입력하자마자 aler(); 메시지를 발생시킵니다.

누군가 나를 도와주세요.

+0

참고로, 이것은 쓸데없는 사업입니다. 나쁜 단어를 사용하려는 사람들은 단순히 특정 문자를 생략하고'-' 또는'*'로 바꾸거나 잘못 철자 할 것입니다. 그러한 단어를 사용하지 않는 환경/커뮤니티를 모니터하고 작성하는 것이 가장 좋습니다. –

+0

badword1 || badword2 || 나쁜 단어 3은 정규 표현식이 아닌 문자열로 읽혀집니다. – Srinath

답변

0

뭔가 나쁜 단어의 배열을 ... 소요

실제로 클라이언트 측 코드를 신뢰하지해야
var words = new RegExp("badword1|badword|bad word3", g); 

이 ... 그들을 통해 루프는 글로벌 정규식을 생성 그 다음 그것을 교체하는 데 사용됩니다 ... 원래 경고 문자열을 바꾼 경우 결과 문자열을 비교합니다.

var badwords = ['badword1','badword2','badword3']; //array of badwords 
function myFunction() { 
    var str = document.getElementById("demo").value; 
    var res = str; 
    for (var i = badwords.length - 1; i >= 0; i--) { 
     var badword = badwords[i]; 
     badWordRegex = new RegExp(badword, 'g'); 
     res=res.replace(badWordRegex, " "); 
    }; 

    document.getElementById("demo").value = res; 

    if (str !== res){ 
     alert('that word is not allowed!'); 
    } 
} 
+0

불행히도 이것은 아무 것도하지 않습니다. – user3716307

+0

제공 jsfiddle .. – xxcezz

+0

나는 당신이 jsfiddle를 제공해야한다고 생각하니?! 내 코드 (첫 번째 코드)가 그대로 작동하기 때문에! – user3716307

0

사용 정규식 이 같은

+0

이 작동하지만 여전히 alert()입니다. 메시지가 첫 글자로 팝업됩니다. 클라이언트 쪽 코드는

+0

@ user3716307 무엇의 첫 글자? 나는 이해하지 못한다. 그리고 – Vinz243

+0

입력란 데모에 입력 한 모든 문자의 첫 글자를 편집하십시오. alert(); 메시지. 그리고 편집이 작동하지 않습니다. 이전 코드가 제대로 작동했습니다. – user3716307

관련 문제