DB에 자료를 입력할 경우 가끔 column의 size를 over하여 Exception이 발생할 경우가
생깁니다. 데이터를 서버로 전송하기 전에 체크할 수 있는지 고민하다가 만들어봤습니다.
  <script language=JavaScript>
    /**
     * 한글을 2바이트 씩 계산하여 입력받은 문자열이 DB에 저장될 때 총 몇바이트를 차지하는지 계산한다.
     * 엔터(\r\n)는 2바이트를 차지한다.
     * @param val : 입력받은 문자열
     */
    function cal_length(val)
    {
      // 입력받은 문자열을 escape() 를 이용하여 변환한다.
      // 변환한 문자열 중 유니코드(한글 등)는 공통적으로 %uxxxx로 변환된다.
      var temp_estr = escape(val);
      var s_index   = 0;
      var e_index   = 0;
      var temp_str  = "";
      var cnt       = 0;
      // 문자열 중에서 유니코드를 찾아 제거하면서 갯수를 센다.
      while ((e_index = temp_estr.indexOf("%u", s_index)) >= 0)  // 제거할 문자열이 존재한다면
      {
        temp_str += temp_estr.substring(s_index, e_index);
        s_index = e_index + 6;
        cnt ++;
      }
temp_str += temp_estr.substring(s_index);
temp_str = unescape(temp_str); // 원래 문자열로 바꾼다.
      // 유니코드는 2바이트 씩 계산하고 나머지는 1바이트씩 계산한다.
      return ((cnt * 2) + temp_str.length) + "";
    }
'HTML & Script' 카테고리의 다른 글
| 원하는 문자열을 전부 replace하기 (2) | 2007.05.02 | 
|---|---|
| 특수문자 입력금지, 숫자만 입력 가능 등등 유용한 스크립트 (1) | 2007.05.02 | 
| Javascript Array 의 유용한 메소드들 (0) | 2007.05.02 | 
| 2초마다 이미지 바뀌는 스크립트 (2) | 2007.05.02 | 
| HTML Tag & Elements (1) | 2007.05.02 |