컴퓨터활용/자바

java script 에서 한글 포함 문자열의 substring 함수

멜번초이 2012. 1. 7. 01:21
자바에서는 bytes 로 변환하여 문자열을 핸들링할 수 있지만 java script 에서는 getBytes 메소드가 없어서 곤란하다. 완벽하지는 않지만 비슷하게 동작하는 substring 함수를 만들어 보았다.

이 코드는 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); 
    }
  }
}

<2012-01-05>