웹마스터 팁
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>
제목 | 글쓴이 | 날짜 |
---|---|---|
APMPack 입니다요. [13] | Blainfo | 2002.10.19 |
리눅스로 웹호스팅을 하기위해서... [15] | Dopesoul | 2002.10.23 |
네임서버 설정 ver.1 [/etc 폴더편] [2] | 손택수 | 2002.10.24 |
OpenBSD3.2 설치가이드 - 완결 [3] | pravda | 2002.11.02 |
사용자 자동 등록 쉘스크립트 [1] | 편리 | 2002.11.05 |
[기초]커널 2.4.x, quota 셋팅법 | NeST™y | 2002.11.05 |
[Lindox] 가상콘솔 줄여서 메모리 절약하기.. | NeSTY♨™ | 2002.11.05 |
[Lindox] 실수로 기본 명령어삭제시 강제 복구하기 | NeSTY♨™ | 2002.11.05 |
[기초] 퍼미션 값에 대해서 [4] | NeST™y | 2002.11.05 |
[Lindox] 설치 강좌 쓸때 유용한 명령어 [4] | NeSTY♨™ | 2002.11.05 |
윈xp pro 를 net 서버로 바꾸기
[7]
![]() | 정회철 | 2002.11.13 |
ab 를 이용한 간편한 아파치 성능 측정 [2] | 정인배 | 2002.11.15 |
리눅스 시스템관리 고급 명령어 | 정인배 | 2002.11.16 |
리눅스(레드헷8.0 배포판 기준) 처음 설치하시는 분들을 위한 apm 초간단 팁 [8] | 김종환 | 2002.11.17 |
리눅스 서버를 구축해 보자! #1 [11] | 꼬토 | 2002.11.21 |
리눅스 서버를 구축해 보자! #2 [5] | 꼬토 | 2002.11.22 |
리눅스 mysql 사용자 계정주기/삭제하기 [4] | 정인배 | 2002.11.22 |
Apache + PHP + Mysql확실한 연동 및 리눅스 재설치 정보
[2]
![]() | 최종우 | 2002.11.26 |
[FreeBSD] bind를 몰아낼 djbdns 설치하기 [5] | DeX™ | 2002.11.26 |
[FreeBSD] qmail+mysql+vpopmail+qmailadmin 설치 [1] | DeX™ | 2002.11.26 |
실제 글자수 리턴하기? 이정도가 맞겠죠..
대한민국 -> 8바이트입니다.