웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
변수의 실제 바이트 수를 리턴하는 팁
2003.08.29 00:11
제가 자바스크립트에서 실제 바이트 수를 리턴하는 방법을
찾다가 결국 만들어버렸습니다.
함수의 값이 한글이든 영문이든 무조건 실제 바이트를 리넡.
"대한민국"은 문자열의 길이가 4 이지만 바이트는 4 바이트겠죠.
아무튼 회원가입시 아이디의 길이 체크에 유용할 거예요.
function bytelength(bstr)
{
len = bstr.length;
for (ii=0; ii<bstr.length; ii++)
{
xx = bstr.substr(ii,1).charCodeAt(0);
if (xx > 127) { len++; }
}
return len;
}
찾다가 결국 만들어버렸습니다.
함수의 값이 한글이든 영문이든 무조건 실제 바이트를 리넡.
"대한민국"은 문자열의 길이가 4 이지만 바이트는 4 바이트겠죠.
아무튼 회원가입시 아이디의 길이 체크에 유용할 거예요.
function bytelength(bstr)
{
len = bstr.length;
for (ii=0; ii<bstr.length; ii++)
{
xx = bstr.substr(ii,1).charCodeAt(0);
if (xx > 127) { len++; }
}
return len;
}
댓글 2
-
lyx
2003.09.27 19:16
-
김상석
2003.10.06 20:06
제가 예전에 쓸라고 만들어 본것......
다음카페에 꼬리말기능에 있는것을 쓰기편하게 수정했습니다...
필요하신분 가져다 쓰세요.......^^
leng_chk(field,maxlimit) => field : 체크할 폼명과변수명 maxlimit => 제한할 바이트
<script>
function leng_chk(field, maxlimit)
{
// field = 확인할 변수(?)명...
// maxlimit = 제한할 글자수(byte)
//alert(field.value);
if(event.keyCode == "13" || event.keyCode == "37" || event.keyCode == "38"|| event.keyCode == "39" || event.keyCode == "40" ){return;}
else
{
rtn_value = calculate_msglen(field);
if (rtn_value > maxlimit)
{
field_len = field.value.length;
alert("최대입력영역("+maxlimit+"byte)초과");
return_value = assert_msglen(field , maxlimit);
field.value=return_value;
}
}
}
function calculate_msglen(field)
{
var nbytes = 0;
var message = field.value;
for (i=0; i<message.length; i++)
{
var ch = message.charAt(i);
if(escape(ch).length > 4){nbytes += 2;}
else if (ch == 'n')
{
if (message.charAt(i-1) != 'r') {nbytes += 1;}
}
else if (ch == '<' || ch == '>') {nbytes += 4;}
else {nbytes += 1;}
}
return nbytes;
}
function assert_msglen(field, maximum)
{
var inc = 0;
var nbytes = 0;
var msg = "";
var message = field.value;
var msglen = message.length;
for (i=0; i<msglen; i++)
{
var ch = message.charAt(i);
if (escape(ch).length > 4){inc = 2;}
else if (ch == 'n')
{
if (message.charAt(i-1) != 'r') {inc = 1;}
}
else if (ch == '<' || ch == '>'){inc = 4;}
else {inc = 1;}
if ((nbytes + inc) > maximum){break;}
nbytes += inc;
msg += ch;
}
return msg;
}
</script>
<form name='input_form'>
<input type='text' name='a' onKeyup="leng_chk(input_form.a,5)"><br>
<textarea name='aa' rows='5' cols='65' onKeyup="leng_chk('input_form.aa',500)"></textarea>
</form>
제목 | 글쓴이 | 날짜 |
---|---|---|
서브디렉토리,파일까지 모두 삭제하는 함수. [5] | Lepas | 2004.08.24 |
Echo 여러번호출? 할때 깜빡임 없애기
[5]
![]() | 신희돈 | 2004.09.03 |
썸네일 생성시 unsharp mask활용할수 있는 팁..소스
![]() | 앗싸~~ 곰세마리 | 2004.09.06 |
랜덤으로 파일 가져와서 재생하고, 끝나면 다른 랜덤파일 또 재생하기.. | 겜방 | 2004.09.10 |
-긴급소스 수정본- winamp 방송정보 알아내기
![]() | 이승원 | 2004.09.11 |
날씨별로 다양한 말이나 음악 보여주기[수정] [4] | 로크 | 2004.09.13 |
crontab 실제 사용 예제, 온라인 웹 게임 운영하기 (팁 + 오픈 소스 게임 소개 ^^;) [1] | 박용구 | 2004.09.14 |
'' -> ""로 만들기(?) [2] | 플로렐라 | 2004.09.17 |
trim 과 addslashes를 일괄처리하는 함수 [7] | BigStone | 2004.10.02 |
echo 안에 더블쿼테이션을 사용하기 [15] | 토토루 | 2004.10.05 |
윈도우XP 서비스팩2 사용자인지 아닌지 판별하기
[22]
![]() | 天高馬肥[쉬드] | 2004.10.09 |
그래프 만들어주는 소스 [10] | 미친개 | 2004.10.15 |
MySQL의 패턴 매칭 맛보기 [2] | 손상모 | 2004.10.19 |
한글자르는 문제 PHP차원에서 해결된 건가? [5] | 겜방 | 2004.10.20 |
IP to 정수변환(;) [4] | 플로렐라 | 2004.10.21 |
www자동 붙히기 [8] | 미오유 | 2004.10.22 |
[타키의 초보강좌]PHP 기초 강좌 제 1탄[패스워드 인증] [8] | 타키 | 2004.10.23 |
소수[솟수] 쉽게 구하기[에라토스테네스의 해 알고리즘사용] , 경우의 수 구하기 [5] | 타키 | 2004.10.23 |
[타키의 초보강좌]PHP 기초 강좌 제 2탄[mysql로 들어가보자.] [2] | 타키 | 2004.10.24 |
나만의 미니홈 만들기 ㅡ 글쓰기에 앞서... [1] | 예뜨락 | 2004.11.17 |
실제 글자수 리턴하기? 이정도가 맞겠죠..
대한민국 -> 8바이트입니다.