[ Nexacro.String -  etc ]

 


정의 : 한글2byte로 인식한 문자수 구하기

function gfn_bpLength2(str)
{
  var len = str.length;
  var han = 0;
  var res = 0;

  for(i=0;i<len;i++) {
    var a=str.charCodeAt(i);
    if(a>128)
    han++;
  }
  res = (len-han) + (han*2);
  
  return res;
}



/******************************************************************************************
 * 기능 : 문자열의 오른쪽부분을 지정한 길이만큼 Return 한다.
 * 인자 : strString (오른부분을 얻어올 원본 문자열)
 *         nSize (얻어올 크기. [Default Value = 0])
 * 리턴 : String/오른쪽 부분이 얻어진 문자열.
 * 예문 :
 *****************************************************************************************/

function gfn_Right(strString, nSize)

{

    var nStart = String(strString).length;

    var nEnd   = Number(nStart) - Number(nSize);

    var rtnVal = strString.substring(nStart, nEnd);

 

    return rtnVal;

}

 

/******************************************************************************************
 * 기능 : 문자열의 왼쪽부분을 지정한 길이만큼 Return 한다.
 * 인자 : strString (왼쪽부분을 얻어올 원본 문자열)
 *         nSize (얻어올 크기. [Default Value = 0])
 * 리턴 : String/왼쪽 부분이 얻어진 문자열.
 * 예문 :
 *****************************************************************************************/

function gfn_Left(strString, nSize)

{

    var rtnVal = "";

    if (nSize > String(strString).length || nSize == null)

        rtnVal = strString;

    else

        rtnVal = strString.substring(0, nSize);

 

    return rtnVal;

}

 

/******************************************************************************************
 * 기능 : undefined을 ""로 리턴한다.
 * 인자 : oParam (object나 문자열)
 * 리턴 : undefined이면 ""(널 스트링)
 * 예문 :
 *****************************************************************************************/

function gfn_BlankStr(oParam)

{

    var strParam = new String(oParam);

    if(strParam.valueOf() == "undefined") {

        return "";

    }

 

    return oParam;

}

 

/******************************************************************************************
 * 기능 : 문자열 길이 반환하는 함수
 * 인자 : sValue
 * 리턴 : length
 * 예문 :
 *****************************************************************************************/

function gfn_GetLengthB(sValue)

{

    if (gfn_IsNull(sValue))    return 0;

    

    var v_ChkStr = sValue.toString();

    var v_cnt = 0;

 

    for (var i=0; i<v_ChkStr.length; i++)

    {

        if (v_ChkStr.charCodeAt(i) > 127)

        {

            v_cnt += 3;

        } else {

            v_cnt += 1;

        }

    }

 

    return v_cnt;

}

 

/******************************************************************************************
 * 기능 : 입력된 문자열의 일부분을 다른 문자열로 치환하는 함수
 * 인자 : strString 원본 문자열.
           strOld    원본 문자열에서 찾을 문자열.
           strNew    새로 바꿀 문자열.
 * 리턴 : 대체된 문자열
 * 예문 :
 *****************************************************************************************/

function gfn_Replace()

{

    var varRtnValue = null;

    var arrArgument = gfn_Replace.arguments;

 

    if (arrArgument.length < 3) {

        varRtnValue = arrArgument[0];

    } else {

        if (gfn_IsNull(arrArgument[0])) {

            return varRtnValue;

        }

        varRtnValue = arrArgument[0].toString().replace(arrArgument[1], arrArgument[2]);

    }

 

    return varRtnValue;

}

 

/******************************************************************************************
 * 기능 : 입력값 형태에 따라서 길이 또는 범위를 구하는 함수
 * 인자 : 객체, 문자열, 배열
 * 리턴 : Type에 따라 구해진 길이 또는 범위
 * 예문 :
 *****************************************************************************************/

function gfn_GetLength()

{

    var varRtnValue = 0;

    var arrArgument = gfn_GetLength.arguments;

    if (arrArgument.length < 1) { return 0; }

 

    if (!gfn_IsNull(arrArgument[0]))

        varRtnValue = arrArgument[0].toString().length;

 

    return varRtnValue;

}

 

 

/******************************************************************************************
 * 기능 : 부분 문자열이 처음 나오는 문자 위치를 반환하는 함수
 * 인자 :
 * 리턴 :
 * 예문 :
 *****************************************************************************************/

function gfn_IndexOf()

{

    var varRtnValue = null;

    var arrArgument = gfn_IndexOf.arguments;

 

    if (arrArgument.length < 2) {

        varRtnValue = -1;

    } else {

        var nOffset = 0;

        if (gfn_IsNull(arrArgument[0]) || gfn_IsNull(arrArgument[1])) {

            return varRtnValue;

        }

 

        if (!gfn_IsNull(arrArgument[2])) nOffset = parseInt(arrArgument[2]);

        varRtnValue = arrArgument[0].toString().indexOf(arrArgument[1], nOffset);

    }

 

    return varRtnValue;

}

/******************************************************************************************
 * 기능 : 지정한 인덱스에 해당하는 문자를 반환하는 함수
 * 인자 :
 * 리턴 :
 * 예문 :
 *****************************************************************************************/

function gfn_CharAt()

{

    var varRtnValue = null;

    var arrArgument = gfn_CharAt.arguments;

 

    if (arrArgument.length < 2) {

        varRtnValue = "";

    } else {

        var nIndex = parseInt(arrArgument[1]);

        varRtnValue = arrArgument[0].toString().charAt(nIndex);

    }

 

    return varRtnValue;

}

 

 

/******************************************************************************************
 * 기능 : 문자열을 지정한 형태로 Parsing 한 후 배열로 만드는 함수
 * 인자 : strString    Parsing 해야될 문자열.
          strDelimiter Parsing 할 때 분리의 기준이 되는 문자들의 문자열.
 * 리턴 : Split 처리결과의 문자열 배열
 * 예문 :
 *****************************************************************************************/

function gfn_Split()

{

    var rtnArr = new Array();

    var arrArgument = gfn_Split.arguments;

 

    if (arrArgument.length < 1) {

    } else if (arrArgument.length < 2) {

        if (!gfn_IsNull(arrArgument[0])) {

            rtnArr[0] = arrArgument[0];

        }

    } else {

        if (!gfn_IsNull(arrArgument[0])) {

            rtnArr = arrArgument[0].toString().split(arrArgument[1]);

        }

    }

 

    return rtnArr;

}

 

/******************************************************************************************
 * 기능 : 입력된 실수를 문자열 표현법으로 표현하는 함수
 * 인자 : dNumber    문자열로 출력할 실수
           nDetail    출력시 소숫점 이하의 자릿수(Default : 0)
 * 리턴 : 문자열로 바뀐 실수
 *         출력되는 실수는 정수부분에 3자리마다 ',' 가 삽입됩니다.
 * 예문 :
 *****************************************************************************************/

function gfn_NumFormat(dNumber, nDetail) {

    var rtnStr;

    if (gfn_IsNull(nDetail) != false) { nDetail = 0; }

 

    rtnStr = dNumber.toFixedLocaleString(nDetail);

 

    return rtnStr;

}

 

/******************************************************************************************
 * 기능 : "=" 좌우의 빈공백 제거된 문자열로 만드는 함수
 * 인자 : strArg    문자열
 * 리턴 : "=" 좌우의 빈공백 제거된 문자열
 * 예문 :
 *****************************************************************************************/

function gfn_StripBlank(strArg)

{

    var nChrPos;

    var strLeft;

    var strRight = strArg;

    var strChr;

    var retVal = "";

 

    while(true) {

        nChrPos = strRight.indexOf("=");

        if (nChrPos == -1) {

            retVal += strRight;

            break;

        }

 

        strLeft  = strRight.substr(0, nChrPos).trimRight();

        strRight = strRight.substr(nChrPos + 1).trimLeft();

        strChr   = strRight.charAt(0);

 

        retVal += strLeft + "=";

        if (strChr != "\"" && strChr != "'") { strChr = " "; }

 

        nChrPos = strRight.indexOf(strChr, 1);

        if (nChrPos > -1) {

            retVal  += strRight.slice(0, nChrPos + 1);

            strRight = strRight.substr(nChrPos + 1);

        } else {

            retVal  += strRight;

            strRight = "";

        }

    }

 

    return retVal;

}

 

/******************************************************************************************
 * 기능 : 입력된 문자열의 양쪽에 쌍따옴표를 붙여 반환합니다.
 * 인자 : strString 대상 문자열
 * 리턴 : String/쌍따옴표가 붙여진 문자열
 * 예문 :
 *****************************************************************************************/

function gfn_Quote()

{

    var retVal = '""';

    var arrArgument = gfn_Quote.arguments;

 

    if ((arrArgument != null) && (arrArgument.length >= 1) && (!gfn_IsNull(arrArgument[0]))) {

        retVal = wrapQuote(new String(arrArgument[0]));

    }

 

    return retVal;

}

 

/******************************************************************************************
 * 기능 : 가운데 부분의 문자열을 반환합니다.
 * 인자 : strString String  가운데 부문을 얻어올 원본 문자열.
           nIndex    Integer 얻어올 첫 글자의 Index.
           nSize     Integer 얻어올 글자수. [Default length(해당 개채의 길이)]
 * 리턴 : String/가운데 부분이 얻어진 문자열.
 * 예문 :
 *****************************************************************************************/

function gfn_SubStr()

{

    var retVal    = "";

    var strString = "";

    var nIndex    = 0;

    var nSize     = 0;

    var arrArgument = gfn_SubStr.arguments;

 

    if (arrArgument.length >= 1) { strString = arrArgument[0]; }

    if (arrArgument.length >= 2) { nIndex    = parseInt(arrArgument[1]); }

    if (arrArgument.length >= 3) { nSize     = parseInt(arrArgument[2]); }

                            else { nSize     = gfn_GetLength(arrArgument[0]); }

 

    if (!gfn_IsNull(strString)) {

        retVal = strString.substr(nIndex, nSize);

    }

 

    return retVal;

}

 

/******************************************************************************************
 * 기능 : 문자열 더하기
 * 인자 : psLastVal - 적용할 값
          psAddVal  - 추가할 값
          psGubn    - 구분자  (없을 경우 default=콤마)
 * 리턴 : psLastVal
 * 예문 :

 *****************************************************************************************/

function gfn_Concat(psLastVal, psAddVal, psGubn){

    if (gfn_IsNull(psLastVal))

        return psAddVal

    else{

        if (gfn_IsNull(psGubn))

            return psLastVal += ',' + psAddVal;

        else

            return psLastVal += psGubn + psAddVal;

    }

}

 

 

 
 
 

 

 

Posted by 농부지기
,