오늘은 자바스크립트에서 mid 함수를 소개하겠습니다.
원래 substring 이란 함수가 있지만.. 정확한 바이트 단위의 mid 을 해야할 경우도 있기때문에 아래의 함수를 구현해야 합니다.
* 소스코드
function getByteLength( data )
{
var str = data;
var l = 0;
if( str == "") return l;
for (var i=0; i<str.length; i++) l += (str.charCodeAt(i) > 128) ? 2 : 1;
return l;
return len;
}
function Mid(str, st, en)
{
var len = getByteLength(str);
var iEnd;
if (st < 0){
str=""; return str;
}else if( st > len ){ //시작점의 길이가 문자열의 길이보다 짧을경우
return str;
}else{
if(!en){//끝점의 값이 없을경우 시작점부터 끝점까지 리턴
iEnd = len;
}else{
// find st
var find_st = 0;
var find_cnt = 0;
var ret_str = "";
for(var in_i=0; in_i<str.length; in_i++){
find_st += (str.charCodeAt(in_i) > 128) ? 2 : 1;
if(find_st > st){
ret_str += str.charAt(in_i);
find_cnt += (str.charCodeAt(in_i) > 128) ? 2 : 1;
if(find_cnt >= en) break;
}
}
return ret_str;
}
}
return "";
}
* 사용법
var ret = Mid("abcd", 0, 2);
일반적인 C++의 CString 맴버함수와 같은 스타일로 사용하면 됩니다.
숫자값은 바이트 단위가 되고 0 부터 시작입니다.
'프로그램 > Javascript' 카테고리의 다른 글
테이블에서 아무스 오버 시 해당 레코드 색상 변경 (0) | 2021.01.13 |
---|---|
자바스크립트로 버튼을 예쁘게 만들어 사용해 보세요. (0) | 2021.01.12 |
AES 암호화 코드 (0) | 2021.01.10 |
구글 바차트 만들기 (0) | 2021.01.10 |
submit 을 할 때 target 이 두번 호출이 되는 현상 해결방법 (0) | 2021.01.10 |