일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 티스토리
- centos
- proxmox
- iptime
- 아파치
- ConoHa
- KB증권
- 보르비스초월
- 킹북이초월
- 리눅스
- Apache
- KB국민카드
- 복현오거리
- 알리익스프레스
- 램가스초월
- 라즈베리파이2
- 가상서버호스팅
- SKT
- PHP-FPM
- jQuery
- Rocky
- php
- 윈도우10
- 시놀로지
- 소비전력
- 알뜰폰
- 자바스크립트
- mysql
- 스톤에이지
- OpenWrt
- Today
- Total
맛집 여행 캠핑 일상 생활
JAVASCRIPT SMS 문자열 바이트 계산 본문
JAVASCRIPT SMS 문자열 바이트 계산
SMS 인지 LMS 인지 판단 하기 위해서 문자열의 바이트 계산이 필요해서 만들어 보았다.
여러번 테스트 해서 얻은 결과물이다.
하지만 또다른 코드값이 있을 수는 있다.
php 의 addslashes 처럼 역슬래쉬 문자가 붙는 특수문자는 쌍따옴표("), 따옴표('), 슬래쉬(/), 역슬래쉬(\), 파이프라인(|) 이다.
이 문자는 문자전송시에 역슬래쉬 문자가 붙어서 전송되므로 1바이트씩 늘어나게 된다.
그리고 아스키코드가 아닌 문자는 2바이트로 계산되어 진다.
마지막으로 엔터문자는 브라우저 마다 다른데 "\n" 만 붙는게 있고 "\r\n" 으로 값이 들어오는 것도 있다.
뭐 어쨌든 엔터문자는 1바이트로 계산을 하면 된다.
function get_sms_length(str) { // 예전엔 80바이트 이하, 지금은 90바이트 이하 단문(SMS), 초과 장문(LMS)
var len = 0;
for(var i=0; i<str.length; i++) {
var c = str.charCodeAt(i);
if(c > 128 || c == 0x22 || c == 0x27 || c == 0x2F || c == 0x5C || c == 0x7C) { // ", ', /, \, |
len += 2;
} else if(c == 0x0D) { // 0x0A 에서 1카운트 0x0D 는 무시
len += 0;
} else {
len += 1;
}
}
return len;
}
모든 아스키코드를 돌려본게 아니라서 장담은 하지 못함.
'JAVASCRIPT' 카테고리의 다른 글
HTML5 웹스토리지 localStorage sessionStorage 예제 (0) | 2016.09.22 |
---|---|
JAVASCRIPT Web Worker 를 이용한 Background 작업처리 (0) | 2016.09.21 |
JAVASCRIPT + PHP 새창에 이미지 주소 노출 없이 뿌리기 (0) | 2016.09.01 |
JAVASCRIPT 부모페이지의 QueryString 가져오는 방법 (0) | 2016.09.01 |
JAVASCRIPT 썸네일이미지 클릭시 새창에 이미지보기 (0) | 2016.08.31 |