일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- tPerRow hn측
- JavaScript
- 객체정의
- math
- 모듈
- app.js
- 함수
- sanitize
- 실행
- express
- template
- Web
- nodemon
- node.js
- round
- nodejs
- 생활코딩
- local
- Web2
- 데이터
- 자동
- dr 학교측
- Generator
- passport
- 객체
- /bin/www
- Passport.js
- 설치
- lowdb
- 객체란
- Today
- Total
괜찮아 잘하고있어 힘내
[JavaScript] 글자 수 입력 제한 처리(바이트) 본문
참고:
https://yangyag.tistory.com/438
[javascript] 글자수 제한 처리(바이트)
1. 자바스크립트 단 function fnChkByte(obj) { var maxByte = 600; //최대 입력 바이트 수 var str = obj.value; var str_len = str.length; var rbyte = 0; var rlen = 0; var one_char = ""; var str2 = ""; fo..
yangyag.tistory.com
https://fairworld.tistory.com/107
[자바스크립트] escape()와 unescape()
escape(jsString) 인수 escape : (엔코딩 기능함수) 필수적인 인수로 최상위 내장 기능함수이다. jsString : (엔코딩할 문자열) 엔코딩할 문자열의 개체이거나 문자열이다. 설명 unescape() 기능함수와 같이
fairworld.tistory.com
function ChkByte(obj){
var maxByte = 3000; //최대 입력 바이트 수
var str = obj.value; //해당 객체의 값을 str 변수에 담는다. 여기서는 문자열이 넘어온다.
var str_len = str.length; //넘어온 객체(문자열)의 길이를 str_len에 담는다.
var rbyte = 0;
var rlen = 0;
var one_char = "";
var str2 = "";
for(var i =0; i<str_len; i++){ //입력한 문자열의 길이만큼 반복한다.
one_char = str.charAt(i); //입력한 문자열을 순차적으로 char형으로 바꿔서 문자 하나씩 one_char에 담는다.
if(escape(one_char).length > 4){ //하나씩 읽어온 char형을 escape(인코딩) 시켜서 4보다 큰지
rbyte += 2; //escape(인코딩) 결과의 길이가 4보다 크면 한글이므로 2byte이다. 그래서 rbyte에 2를 추가
} else {
rbyte ++; //영문 등 나머지는 1byte
}
if(rbyte <= maxByte) { //글자 하나당 몇바이트인지 체크해서
//모두 더한 rbyte값이 최대 입력바이트 수(maxByte) 보다 작거나 같으면 실행
rlen = i + 1; //return 할 문자열 개수
}
}
if(rbyte > maxByte){ //전체 몇바이트 입력했는지 담겨있는 rbyte 값이 최대 입력 바이트 maxByte값 보다 크면
alert("한글 " + (maxByte/2)+ "자/ 영문 " +maxByte+ "자를 초과 입력할 수 없습니다.");
str2 = str.substr(0, rlen); // 0번째 인덱스 부터 rlen 길이 만큼 잘라서 str2에 담는다.
obj.value = str2; //문자열 입력 객체에 최대입력 바이트만큼 잘라낸 문자열을 다시 저장한다.
ChkByte(obj, maxByte);
} else{
document.getElementById('byteInfo').innerText = rbyte;
}
}
'웹 개발 > 개발 메모' 카테고리의 다른 글
[asp.net] 페이지 include (0) | 2021.08.11 |
---|---|
공부 (0) | 2021.08.11 |
[JavaScript] 문자열 자르기 (0) | 2021.08.11 |
[JavaScript] 소수점 올림, 버림, 반올림 (0) | 2021.08.11 |
varchar2 최대 크기로 설정(CLOB 타입으로 변경) (0) | 2021.08.11 |