2013-07-03 1 views
1

텍스트 영역 안의 텍스트가 ascii인지 확인하려면 코드를 작성하고 ascii는 maximaum 길이를 160으로 설정하면 maxiamum lenghh를 70으로 설정하지 않았는지 확인합니다. , 또한 내가 사용자가 텍스트를 입력하는 동안 수표를 원한다, 나는이 시도했지만 작동하지, 어떤 생각? 아스키 비 ASCII 문자 코드 경고 이상값이 fron textarea가 ascii인지 확인

<script type="text/javascript"> 
var maxLength=160; 
var Ascii=true; 


function isAscii(el) { 
    var i=0; 
while (i < = el.value.length){ 
if(el.value[i].charCodeAt(0) >= 0 && el.value[i]charCodeAt(0) <= 127){ 
i=i+1; 
} 
else 
{ 
return false 
} 
} 
return true; 
    } 



    function characterCount(el) { 

if (isAscii(el)){ 
Ascii=true; 
maxLength=160; 
} 
else { 
Ascii=false 
maxLength=70; 
} 




var charCount = document.getElementById('charCount'); 
if (el.value.length > maxLength) el.value = el.value.substring(0,maxLength); 
if (charCount) charCount.innerHTML = maxLength - el.value.length; 
return true; 
} 


</script> 

    <textarea name='text' onKeyUp='characterCount(this)' id='textarea' cols='60'  rows='10'> </textarea> 
+0

사용자가 입력하는 동안 * 인코딩 *이 ASCII에서 UTF-8로 변경되지 않습니다. 사용자가 ASCII 문자 범위를 벗어난 문자를 입력했는지 확인하기 만하면됩니다. – deceze

+0

예,이게 내가하고 싶은 것입니다. 질문 제목을 변경했습니다. – Omar

답변

1
<script type="text/javascript"> 
var maxLength=160; 
var Ascii=true; 


function isAscii(el) { 
    var i=0; 
while (i < el.value.length){ 
alert(el.value[i]); 
if(el.value[i].charCodeAt(0) >= 0 && el.value[i].charCodeAt(0) <= 127){ 
i=i+1; 
} 
else 
{ 
return false 
} 
} 
return true; 
    } 



    function characterCount(el) { 

if (isAscii(el)){ 
Ascii=true; 
maxLength=160; 
} 
else { 
alert("non-ascii"); 
Ascii=false 
maxLength=70; 
} 





return true; 
} 


</script> 
<body> 
    <textarea name='text' onKeyUp='characterCount(this)' id='textarea' cols='60' > </textarea> 
</body> 

, 나는 길이 텍스트 상자의 길이를 변화에서 어떤 점을 발견하지만, 어쨌든 당신이 지금 그렇게 할 수 있기를 바랍니다. 코드에서

변경 :

1) el.value[i].charCodeAt(0) -> .(dot) is missing

2) while (i < el.value.length){

위의 문은 다시 잘못 < =을 사용했다.

+0

당신이 내 코드에서 무엇을 바꿨는지 모르겠지만 그 코드는 잘 작동합니다 ... 감사합니다. – Omar

+1

코드에 변경 사항이 있습니다 –