웹마스터 팁
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>
제목 | 글쓴이 | 날짜 |
---|---|---|
홈에 TT WEB FTP 달기 [12] | PHASE | 2003.09.03 |
frame으로 홈페이지 구성시 한쪽 페이지는 유동성있는 파일 대입법(?) | monozzang | 2003.09.02 |
주어진 값이 한글,영어,숫자인지 체크 [2] | 한승진 | 2003.08.29 |
전화번호 유효성 검사(핸폰,집전화 몽땅) [4] | 한승진 | 2003.08.29 |
변수에서 숫자만 리턴합니다. | 한승진 | 2003.08.29 |
변수의 실제 바이트 수를 리턴하는 팁 [2] | 한승진 | 2003.08.29 |
메인 접속하면 할아버지 나오는... [6] | 공유 | 2003.08.28 |
마우스 움직임에 따라 속도도, 방향도 자유자재 스크롤 소스 [1] | RedEye(kaist) | 2003.08.24 |
경우에 따라 공지가 새창에서도 보여야 하고, 일반 페이지에서도 보여야 할때 | 조은하루 | 2003.08.22 |
[수정]롤오버 메뉴에 하위 부메뉴 레이어..(아웃시 하위메뉴사라짐) [24] | 미니 | 2003.08.18 |
재미있는놀이 [ 숫자맞추기] [3] | NzeoZen | 2003.08.16 |
배경도 이제 선택한다!!? [2] | NzeoZen | 2003.08.16 |
편리한 컴내꺼 포트개방 (com.ne.kr FTP Port Open) [1] | phase | 2003.08.16 |
Marquee 태그를 이용한 간단한 스크립트 [7] | 뒹굴리스트 | 2003.08.06 |
나름대로 만들어본 가운데 팝업 스크립트 [3] | phase | 2003.07.31 |
HTML경고창 [수정#2] [14] | [락위듀]아렌티 | 2003.07.26 |
초강력 울트라..매가톤 간단...랜덤이미지.. [6] | 김한샘 | 2003.07.24 |
노프레임 홈페이지 수정 편리하게 &용량줄이기. [9] | 세죠위그이 | 2003.07.15 |
한줄씩 올라가는 뉴스티거용 인데요....제로보드하구는 어케...쩝 [12] | 하나비 | 2003.07.08 |
이미지 필터를 사용한 간단한 소스 [3] | NzeoZen | 2003.07.06 |
실제 글자수 리턴하기? 이정도가 맞겠죠..
대한민국 -> 8바이트입니다.