컴퓨터활용/자바
java script 에서 한글 포함 문자열의 substring 함수
멜번초이
2012. 1. 7. 01:21
자바에서는 bytes 로 변환하여 문자열을 핸들링할 수 있지만 java script 에서는 getBytes 메소드가 없어서 곤란하다. 완벽하지는 않지만 비슷하게 동작하는 substring 함수를 만들어 보았다.
이 코드는 X-Platform 이라는 UI툴에서 작성된 예제이므로 일반 표준 java script 와는 문법이 다를 수 있다.
<2012-01-05>
이 코드는 X-Platform 이라는 UI툴에서 작성된 예제이므로 일반 표준 java script 와는 문법이 다를 수 있다.
function Button02_onclick()
{
trace( fn_subString( edt_inputval00.value, Edit00.value, Edit01.value ));
}
// 문자열의 길이를 구하는 함수
function fn_strlen(str) {
var len = 0;
for(var i=0;i<str.length;i++) {
len += (str.charCodeAt(i) > 128) ? 2 : 1;
}
return len;
}
// 문자열에서 시작위치와 길이를 주면 substring 하여 리턴한다.
function fn_subString(str,start,size) {
var lim = 0;
var pos = 0;
var beg = 0;
var minus = 0;
var len = fn_strlen(str);
// 시작위치까지 skip하는 로직
for(var i=0;pos<start;i++) {
pos += (str.charCodeAt(i) > 128) ? 2 : 1;
}
beg = i;
// 시작위치에서 길이만큼 잘라내는 로직
for (var i=beg; i<len; i++) {
lim += (str.charCodeAt(i) > 128) ? 2 : 1;
if (lim > size) {
return str.substring(beg,i);
}
}
}
{
trace( fn_subString( edt_inputval00.value, Edit00.value, Edit01.value ));
}
// 문자열의 길이를 구하는 함수
function fn_strlen(str) {
var len = 0;
for(var i=0;i<str.length;i++) {
len += (str.charCodeAt(i) > 128) ? 2 : 1;
}
return len;
}
// 문자열에서 시작위치와 길이를 주면 substring 하여 리턴한다.
function fn_subString(str,start,size) {
var lim = 0;
var pos = 0;
var beg = 0;
var minus = 0;
var len = fn_strlen(str);
// 시작위치까지 skip하는 로직
for(var i=0;pos<start;i++) {
pos += (str.charCodeAt(i) > 128) ? 2 : 1;
}
beg = i;
// 시작위치에서 길이만큼 잘라내는 로직
for (var i=beg; i<len; i++) {
lim += (str.charCodeAt(i) > 128) ? 2 : 1;
if (lim > size) {
return str.substring(beg,i);
}
}
}
<2012-01-05>