0
SMS 애플리케이션에 대해 입력 된 문자 바이트를 계산하고 싶습니다. ASCII가 입력되면 1 바이트를, 비 ASCII의 경우 2 바이트를 계산합니다. 총 문자 바이트가 80 바이트보다 크면 스크립트는 경고해야합니다 ('귀하는 80 바이트 넘음에 도달했습니다').이 후 80 바이트 미만이 될 때까지 끝에서 잘라야합니다. 그러나 cutBylen() 함수는이 스크립트에서 작동하지 않는 것 같습니다. 그냥 경고하지만 문자열을 자르지 않습니다. 누군가가 문제가있는 곳을 말해 줄 수 있습니까? 고맙습니다.jquery에서 Javascript 함수가 작동하지 않습니다.
<script>
function countBytes(str) {
var count = 0;
for (var i = 0; i < str.length; i++) {
var onechar = str.charAt(i);
if (str.charCodeAt(i) >= 128) {
count += 2;
} else if (onechar != '\r') {
count++;
}
}
return count;
}
</script>
<script>
function cutByLen(str, byteLen) {
var tmpStr = str;
while (countBytes(tmpStr) > byteLen) {
var len = tmpStr.length;
tmpStr = tmpStr.substr(0, len - 1);
}
return tmpStr;
}
</script>
<script>
$(document).ready(function() {
$("#smstext1").keyup(function(){
var text = $(this).val();
var byteLen = countBytes(text);
var len = text.length;
if (byteLen >80){
alert('You have reached over 80bytes');
var tmpStr = cutByLen(text, byteLen);
$(this).val(tmpStr);
}
});
});
</script>
완벽합니다! 정말 효과가있었습니다. 나는 디버깅하는 동안 정말 좌절감을 느끼고 아무것도 발견하지 못했다. 나는 그것이 아주 간단해야한다는 것을 알았다. 고마워, 친구. :) – xnote