[ 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 농부지기
,

[ Nexacro.String -  문자열 수 세기 ]

 

 


/*******************************************************************************
 ★ 설명
    대소문자 구별하여 문자개수 세기
 ★ Parameter
    1. sOrg   : 원래 문자열( 예 : "aaBBbbcc" )
    2. sCnt   : 개수를 셀 문자열 ( 예 : "BB" )
 ★ return
    - 성공 = 문자개수 ( 예 : 1 )
    - 실패 = -1
 ******************************************************************************/

function fn_Count(sOrg, sCnt)

{

 var i, sRet="";

 var nCnt = 0;

 

 if( fn_IsNull(sOrg) || fn_IsNull(sCnt) )  return -1;

 

 for( i = 0 ; i < sOrg.length ; i += sCnt.length )

 {

  if( sOrg.substr(i, sCnt.length) == sCnt )

   nCnt++;

 }

 

 return nCnt;

}

 

/*******************************************************************************
 ★ 설명
    대소문자 구분없이 문자개수 세기
 ★ Parameter
    1. sOrg   : 원래 문자열( 예 : "aaBBbbcc" )
    2. sCnt   : 개수를 셀 문자열 ( 예 : "BB" )
 ★ return
    - 성공 = 문자개수 ( 예 : 2 )
    - 실패 = -1
 ******************************************************************************/

function fn_CountCase(sOrg, sCnt)

{

 var i, sRet="";

 var nCnt = 0;

 

 if( fn_IsNull(sOrg) || fn_IsNull(sCnt) )  return -1;

 

 for( i = 0 ; i < sOrg.length ; i += sCnt.length )

 {

  if( sOrg.toLowerCase().substr(i, sCnt.length) == sCnt.toLowerCase() )

   nCnt++;

 }

  

 return nCnt;

}

/*******************************************************************************
 ★ 설명
    문자 전체 길이를 계산
      - 문자, 숫자, 특수문자 : 1 로 Count
      - 그외 한글/한자 : 2 로 count 되어 합산한다.
 ★ Parameter
    1. sVal   : 입력받은 문자열 ( 예 : "a1\n한韓" )
 ★ return
    - 성공 = 길이 ( 예 : 7 )
    - 실패 = -1
 ******************************************************************************/

function fn_LenB(sVal)

{

    var len = 0;

 

 if( fn_IsNull(sVal) )  return -1;

 

    for (i=0; i<sVal.length; i++)

    {

        if (sVal.charCodeAt(i) > 127)

            len += 2;

        else

            len += 1;

    }

 return len;

}

/******************************************************************************
  * Function명 : gf_getBytes()
  * 설명       : byte수를 반환한다.
  * Params     : String
  * Return     : byte수
  ******************************************************************************/

 function gf_getBytes(str) {

     if ( gf_isNull(str) ) return;

     

    var bytes = 0;

 

    for (var i=0, n=str.length; i < n; i++) {

         var oneChar = escape(str.charAt(i));

         if ( oneChar.length == 1 ) {

             bytes ++;

         } else if (oneChar.indexOf("%u") != -1) {

             bytes += 2;

         } else if (oneChar.indexOf("%") != -1) {

             bytes += oneChar.length/3;

         }

    }

 

    return bytes;

 }


/**
* 입력값의 바이트 길이를 리턴
* ex) if (getByteLength(form.title) > 100) {
*         alert("제목은 한글 50자(영문 100자) 이상 입력할 수 없습니다.");
*     }
* Author : Wonyoung Lee
*/

function getByteLength(input) {

    var byteLength = 0;

    for (var inx = 0; inx < input.value.length; inx++) {

        var oneChar = escape(input.value.charAt(inx));

        if ( oneChar.length == 1 ) {

            byteLength ++;

        } else if (oneChar.indexOf("%u") != -1) {

            byteLength += 2;

        } else if (oneChar.indexOf("%") != -1) {

            byteLength += oneChar.length/3;

        }

    }

    return byteLength;

}

 

☞  

 

☞  

 
 
 
 

  

'Nexacro-Function > String' 카테고리의 다른 글

Nexacro.String - etc  (0) 2017.01.28
Nexacro.String - 문자열 삭제.추가  (0) 2017.01.28
Nexacro.String - 문자열 치환  (0) 2017.01.28
Nexacro.String - 문자열 찾기  (0) 2017.01.28
Nexacro.String - token 추출  (0) 2017.01.28
Posted by 농부지기
,

[ Nexacro.String -  문자열 삭제.추가 ]

 

 


/******************************************************************************************
 * 기능 : 대소문자 구별하여 왼쪽에서 문자열 삭제.
 * 인자 : 1. sOrg   : 원래 문자열( 예 : "BBbbcc" )
          2. sTrim  : Trim할 문자열(옵션 : Default=" ") ( 예 : "bb" )
 * 리턴 : 성공 = Trim된 문자열 ( 예 : "bbcc" )
          실패 = ""
 * 예문 :
 *****************************************************************************************/

function fn_LTrim(sOrg, sTrim)

{

    var chk, pos;

 

    if( fn_IsNull(sOrg) )  return "";

    if( fn_IsNull(sTrim) )  sTrim = " ";

 

    for( pos = 0 ; pos < sOrg.length ; pos+=sTrim.length )

    {

        if( sOrg.substr( pos, sTrim.length ) != sTrim )  break;

    }

 

    return sOrg.substr(pos);

}

 

 

 

/******************************************************************************************
 * 기능 : 대소문자 구별없이 왼쪽에서 문자열 삭제
 * 인자 : 1. sOrg   : 원래 문자열( 예 : "BBbbcc" )
           2. sTrim  : Trim할 문자열(옵션 : Default=" ")( 예 : "bb" )
 * 리턴 : 성공 = Trim된 문자열 ( 예 : "cc" )
          실패 = ""
 * 예문 :
 *****************************************************************************************/

function fn_LTrimCase(sOrg, sTrim)

{

    var pos;

    

    if( fn_IsNull(sOrg) )  return "";

    if( fn_IsNull(sTrim) )  sTrim = " ";

 

    for( pos = 0 ; pos < sOrg.length ; pos+=sTrim.length )

    {

        if( sOrg.toLowerCase().substr( pos, sTrim.length ) != sTrim.toLowerCase() )  break;

    }

 

    return sOrg.substr(pos);

}

 

/******************************************************************************************
 * 기능 : 대소문자 구별하여 오른쪽에서 문자열 삭제.
 * 인자 : 1. sOrg   : 원래 문자열( 예 : "bbccCC" )
          2. sTrim  : Trim할 문자열(옵션 : Default=" ")( 예 : "CC" )
 * 리턴 : 성공 = Trim된 문자열 ( 예 : "bbcc" )
          실패 = ""
 * 예문 :
 *****************************************************************************************/

function fn_RTrim(sOrg, sTrim)

{

 

 var pos, nStart;

 

 

 

 

 

 if( fn_IsNull(sOrg) )  return "";

 

 if( fn_IsNull(sTrim) )  sTrim = " ";

 

  

 

 for( pos = sOrg.length-sTrim.length ; pos >= 0 ; pos -= sTrim.length )

 {

  if( sOrg.substr( pos, sTrim.length ) != sTrim )

 

   break;

 

 }

 

 return sOrg.substr(0, pos+sTrim.length);

 

}

 

/*******************************************************************************
 ★ 설명
    대소문자 구별없이 오른쪽에서 문자열 삭제.
 ★ Parameter
    1. sOrg   : 원래 문자열( 예 : "bbccCC" )
    2. sTrim  : Trim할 문자열(옵션 : Default=" ")( 예 : "CC" )
 ★ return
    - 성공 = Trim된 문자열 ( 예 : "bb" )
    - 실패 = ""
 ******************************************************************************/

 

function fn_RTrimCase(sOrg, sTrim)

 

{

 

 var pos, nStart;

 

 

 

 

 

 if( fn_IsNull(sOrg) )  return "";

 

 if( fn_IsNull(sTrim) )  sTrim = " ";

 

  

 

 for( pos = sOrg.length-sTrim.length ; pos >= 0 ; pos -= sTrim.length )

 

 {

 

  if( sOrg.toLowerCase().substr( pos, sTrim.length ) != sTrim.toLowerCase() )

 

   break;

 

 }

 

 

 

 

 

 return sOrg.substr(0, pos+sTrim.length);

 

}

 

 

 

 

 

 

 

 


/*******************************************************************************
 ★ 설명
    왼쪽에 문자열 추가.
 ★ Parameter
    1. sOrg   : 원래 문자열( 예 : "bbccCC" )
    2. sPad   : Pad할 문자열(옵션 : Default=" ")( 예 : "aa" )
    3. nCnt   : 반복횟수(옵션 : Default=1) (예 : 2)
 ★ return
    - 성공 = Pad된 문자열 ( 예 : "aaaabbccCC" )
    - 실패 = ""
 ******************************************************************************/

 

function fn_LPad(sOrg, sPad, nCnt)

 

{

 

 var i, sRet="";

 

 

 

 

 

 if( fn_IsNull(sOrg) )  return "";

 

 if( fn_IsNull(sPad) )  sPad = " ";

 

 if( fn_IsNull(nCnt) )  nCnt = 1;

 

 

 

 

 

 for( i = 0 ; i < nCnt ; i++ )

 

  sRet += sPad;

 

 sRet += sOrg;

 

 

 

 return sRet;

 

}

 

 

 

 

 

/*******************************************************************************
 ★ 설명
    오른쪽에 문자열 추가.
 ★ Parameter
    1. sOrg   : 원래 문자열( 예 : "bbccCC" )
    2. sPad   : Pad할 문자열(옵션 : Default=" ")( 예 : "aa" )
    3. nCnt   : 반복횟수(옵션 : Default=1) (예 : 2)
 ★ return
    - 성공 = Pad된 문자열 ( 예 : "bbccCCaaaa" )
    - 실패 = ""
 ******************************************************************************/

 

function fn_RPad(sOrg, sPad, nCnt)

 

{

 

 var i, sRet="";

 

 

 

 

 

 if( v(sOrg) )  return "";

 

 if( fn_IsNull(sPad) )  sPad = " ";

 

 if( fn_IsNull(nCnt) )  nCnt = 1;

 

 

 

 sRet += sOrg;

 

 for( i = 0 ; i < nCnt ; i++ )

 

  sRet += sPad;

 

 

 

 return sRet;

 

}

☞  

 

☞  

 
 
 
 

  

'Nexacro-Function > String' 카테고리의 다른 글

Nexacro.String - etc  (0) 2017.01.28
Nexacro.String - 문자열 수 세기  (0) 2017.01.28
Nexacro.String - 문자열 치환  (0) 2017.01.28
Nexacro.String - 문자열 찾기  (0) 2017.01.28
Nexacro.String - token 추출  (0) 2017.01.28
Posted by 농부지기
,

[ Nexacro.String -  문자열 치환 ]

 


/******************************************************************************************
 * 기능 : 문자열을 대소문자 구별하여 치환한다
 * 인자 : 1. sOrg   : 원래문자열 (예 : "aaBBbbccBB" )
          2. sRepFrom : 치환할 문자열 ( 예 : "BB" )
          3. sRepTo : 치환될 문자열 ( 예 : "xx" )
 * 리턴 : 성공 = 치환된 문자열 ( 예 : "aaxxbbccxx" )
          실패 = sOrg
 * 예문 :
 *****************************************************************************************/

function fn_Replace( sOrg, sRepFrom, sRepTo )

{

    var pos, nStart=0, sRet="";

 

    if( fn_IsNull(sOrg) )      return "";

    if( fn_IsNull(sRepFrom) )  return sOrg;

    if( fn_IsNull(sRepTo) )    return sOrg;

 

    while(1)

    {

        pos = Pos( sOrg, sRepFrom, nStart );

        if( pos < 0 ){

            sRet += sOrg.substr( nStart );

            break;

        }else{

            sRet += sOrg.substr( nStart, pos - nStart);

            sRet += sRepTo;

            nStart = pos+sRepFrom.length;

        }

    }

    return sRet;

}

 

/******************************************************************************************
 * 기능 : 문자열을 대소문자 구별없이 치환한다
 * 인자 : 1. sOrg   : 원래문자열 (예 : "aaBBbbccBB" )
          2. sRepFrom : 치환할 문자열 ( 예 : "BB" )
          3. sRepTo : 치환될 문자열 ( 예 : "xx" )
 * 리턴 : 성공 = 치환된 문자열 ( 예 : "aaxxxxccxx" )
          실패 = sOrg
 * 예문 :
 *****************************************************************************************/

function fn_ReplaceCase( sOrg, sRepFrom, sRepTo )

{

    var pos, nStart=0, sRet="";

 

    if( fn_IsNull(sOrg) )   return "";

    if( fn_IsNull(sRepFrom) )  return sOrg;

    if( fn_IsNull(sRepTo) )  return sOrg;

 

    while(1)

    {

        pos = PosCase( sOrg, sRepFrom, nStart );

        if( pos < 0 ) {

            sRet += sOrg.substr( nStart );

            break;

        }else{

            sRet += sOrg.substr( nStart, pos - nStart);

            sRet += sRepTo;

            nStart = pos+sRepFrom.length;

        }

    }

    return sRet;

}

 

☞  

 

☞  

 
 
 
 

  

'Nexacro-Function > String' 카테고리의 다른 글

Nexacro.String - 문자열 수 세기  (0) 2017.01.28
Nexacro.String - 문자열 삭제.추가  (0) 2017.01.28
Nexacro.String - 문자열 찾기  (0) 2017.01.28
Nexacro.String - token 추출  (0) 2017.01.28
Nexacro.String - padding  (0) 2017.01.28
Posted by 농부지기
,

[ Nexacro.String -  문자열 찾기 ]


 


/******************************************************************************************
 * 기능 : 문자열의 위치를 대소문자 구별하여 찾는다
 * 인자 : 1. sOrg   : 원래 문자열( 예 : "aaBBbbcc" )
          2. sFind  : 찾고자 하는 문자열( 예 : "bb" )
          3. nStart : 검색 시작위치 (옵션 : Default=0) ( 예 : 1 )
 * 리턴 : 성공 = 찾고자 하는 문자열의 시작위치 ( 예 : 4 )
          실패 = -1
 * 예문 :
 *****************************************************************************************/

function fn_Pos(sOrg, sFind, nStart)

{

    if( fn_IsNull(sOrg) || fn_IsNull(sFind) )  return -1;

 

    if( fn_IsNull(nStart) ) nStart = 0;

 

    return sOrg.indexOf(sFind, nStart);

}

 

/******************************************************************************************
 * 기능 : 문자열의 위치를 대소문자 구별없이 찾는다
 * 인자 : 1. sOrg   : 원래 문자열( 예 : "aaBBbbcc" )
          2. sFind  : 찾고자 하는 문자열( 예 : "bb" )
          3. nStart : 검색 시작위치 (옵션 : Default=0) ( 예 : 1 )   
 * 리턴 : 성공 = 찾고자 하는 문자열의 시작위치 ( 예 : 2 )
          실패 = -1
 * 예문 :
 *****************************************************************************************/
 

function fn_PosCase(sOrg, sFind, nStart)

{

    if( fn_IsNull(sOrg) || fn_IsNull(sFind) )  return -1;

    if( fn_IsNull(nStart) )  nStart = 0;

 

    return sOrg.toLowerCase().indexOf(sFind.toLowerCase(), nStart);

}

 

 

    {

        if( sOrg.substr( pos, sFind.length ) == sFind ) break;

    }

    return pos;

}

 

/******************************************************************************************
 * 기능 : 문자열의 위치를 대소문자 구별없이 거꾸로 찾는다
 * 인자 : 1. sOrg   : 원래 문자열( 예 : "aaBBbbcc" )
          2. sFind  : 찾고자 하는 문자열( 예 : "BB" )
          3. nStart : 검색 시작위치 (옵션 : Default=문자열의 끝 ) ( 예 : 6 )
 * 리턴 : 성공 = 찾고자 하는 문자열의 시작위치 ( 예 : 4 )
          실패 = -1
 * 예문 :
 *****************************************************************************************/

function fn_PosReverseCase(sOrg, sFind, nStart)

{

    var pos;

 

    if( fn_IsNull(sOrg) || fn_IsNull(sFind) )  return -1;

    if( fn_IsNull(nStart) )  nStart = sOrg.length-1;

 

    for( pos = nStart ; pos >= 0 ; pos-- )

    {

        if( sOrg.substr( pos, sFind.length ).toLowerCase() == sFind.toLowerCase() )  break;

    }

 

    return pos;

}

 

/******************************************************************************************
 * 기능 : 시작글자와 끝글자에 해당하는 글자의 사이에 있는 가운데 글자를
          대소문자를 구별하여 찾는다.
          ( 예 : aaBBbbccdd에서 bb, dd사이의 글자 cc를 찾는다 )
 * 인자 : 1. sOrg   : 원래 문자열( 예 : "aaBBbbccdd" )
          2. sStart : 찾고자 하는 시작 문자열(옵션 : Default = "")(예 : "bb" )
                     (만일, sStart=""이면 nStart부터 sEnd까지의 모든 문자열이 return된다.)
          3. sEnd   : 찾고자 하는 끝 문자열 (옵션 : Default = "")( 예 : "dd" )
                     (만일, sEnd=""이면 sStart부터 문자열의 끝까지의 모든 문자열이 return된다.)
          4. nStart : 검색 시작위치 (옵션 : Default=0) ( 예 : 1 )
 * 리턴 : 성공 = 가운데 글자 ( 예 : "cc" )
          실패 = ""
 * 예문 :
 *****************************************************************************************/

function fn_Mid(sOrg, sStart, sEnd, nStart)

{

    var pos_start, pos_end, ret_str;

 

    if( fn_IsNull(sOrg) )  return "";

    if( fn_IsNull(sStart) ) sStart = "";

    if( fn_IsNull(sEnd) )  sEnd = "";

    if( fn_IsNull(nStart) ) nStart = 0;

 

    if( sStart == "" )

        pos_start = nStart;

    else{

        pos_start = Pos(sOrg, sStart, nStart);

        if( pos_start < 0 ) return "";

    }

 

    if( sEnd == "" )

        pos_end = sOrg.length;

    else{

        pos_end = Pos(sOrg, sEnd, pos_start+sStart.length, nStart);

        if( pos_end < 0 ) return "";

    }

 

    return sOrg.substring(pos_start+sStart.length, pos_end);

}

 

/******************************************************************************************
 * 기능 : 시작글자와 끝글자에 해당하는 글자의 사이에 있는 가운데 글자를
          대소문자 구별없이 찾는다.
          ( 예 : aaBBbbccdd에서 bb, dd사이의 글자 bbcc를 찾는다 )
 * 인자 : 1. sOrg   : 원래 문자열( 예 : "aaBBbbccdd" )
          2. sStart : 찾고자 하는 시작 문자열(옵션 : Default = "")(예 : "bb" )
                     (만일, sStart=""이면 nStart부터 sEnd까지의 모든 문자열이 return된다.)
          3. sEnd   : 찾고자 하는 끝 문자열 (옵션 : Default = "")( 예 : "dd" )
                     (만일, sEnd=""이면 sStart부터 문자열의 끝까지의 모든 문자열이 return된다.)
          4. nStart : 검색 시작위치 (옵션 : Default=0) ( 예 : 1 )
 * 리턴 : 성공 = 가운데 글자 ( 예 : "bbcc" )
          실패 = ""
 * 예문 :
 *****************************************************************************************/

function fn_MidCase(sOrg, sStart, sEnd, nStart)

{

    var pos_start, pos_end, ret_str;

 

    if( fn_IsNull(sOrg) )  return "";

    if( fn_IsNull(sStart) ) sStart = "";

    if( fn_IsNull(sEnd) )  sEnd = "";

    if( fn_IsNull(nStart) ) nStart = 0;

 

    if( sStart == "" )

        pos_start = nStart;

    else{

        pos_start = PosCase(sOrg, sStart, nStart);

        if( pos_start < 0 ) return "";

    }

 

    if( sEnd == "" )

        pos_end = sOrg.length;

    else {

        pos_end = PosCase(sOrg, sEnd, pos_start+sStart.length, nStart);

        if( pos_end < 0 ) return "";

    }

    return sOrg.substring(pos_start+sStart.length, pos_end);

}

 

 /******************************************************************************************
 * 기능 : Mid()함수와 동일하나 Return을 Array로 한다.
 * 인자 : 1. sOrg   : 원래 문자열( 예 : "aaBBbbccdd" )
          2. sStart : 찾고자 하는 시작 문자열(옵션 : Default = "")(예 : "bb" )
                     (만일, sStart=""이면 nStart부터 sEnd까지의 모든 문자열이 return된다.)
          3. sEnd   : 찾고자 하는 끝 문자열 (옵션 : Default = "")( 예 : "dd" )
                     (만일, sEnd=""이면 sStart부터 문자열의 끝까지의 모든 문자열이 return된다.)
          4. nStart : 검색 시작위치 (옵션 : Default=0) ( 예 : 1 )     
 * 리턴 : - 성공
              Array[0] = 가운데 글자 ( 예 : "cc" )
              Array[1] = sStart의 위치 ( 예 : 4 )
              Array[2] = sEnd의 위치 ( 예 : 8 )
          - 실패
              Array[0] = ""
              Array[1] = -1
              Array[2] = -1
 * 예문 :
 * 참고 : sStart, sEnd의 위치를 알아내려면 다시한번 찾아야 하므로 속도 때문에 만듬
 *****************************************************************************************/

function fn_AMid(sOrg, sStart, sEnd, nStart)

{

    var pos_start, pos_end, ret_str;

    var arr = new Array("",-1,-1);

 

    if( fn_IsNull(sOrg) )  return "";

    if( fn_IsNull(sStart) ) sStart = "";

    if( fn_IsNull(sEnd) )  sEnd = "";

    if( fn_IsNull(nStart) ) nStart = 0;

 

    if( sStart == "" )

        pos_start = nStart;

    else{

        pos_start = Pos(sOrg, sStart, nStart);

        if( pos_start < 0 ) return arr;

    }

    if( sEnd == "" )

        pos_end = sOrg.length;

    else {

        pos_end = Pos(sOrg, sEnd, pos_start+sStart.length, nStart);

        if( pos_end < 0 ) return arr;

    }

 

    arr[0] = sOrg.substring(pos_start+sStart.length, pos_end);

    arr[1] = pos_start;

    arr[2] = pos_end;

    

    return arr;

}

 

/******************************************************************************************
 * 기능 : MidCase()함수와 동일하나 Return을 Array로 한다.
 * 인자 : 1. sOrg   : 원래 문자열( 예 : "aaBBbbccdd" )
          2. sStart : 찾고자 하는 시작 문자열(옵션 : Default = "")(예 : "bb" )
                    (만일, sStart=""이면 nStart부터 sEnd까지의 모든 문자열이 return된다.)
          3. sEnd   : 찾고자 하는 끝 문자열 (옵션 : Default = "")( 예 : "dd" )
                    (만일, sEnd=""이면 sStart부터 문자열의 끝까지의 모든 문자열이 return된다.)
          4. nStart : 검색 시작위치 (옵션 : Default=0) ( 예 : 1 )
 * 리턴 : - 성공
              Array[0] = 가운데 글자 ( 예 : "bbcc" )
              Array[1] = sStart의 위치 ( 예 : 2 )
              Array[2] = sEnd의 위치 ( 예 : 8 )
          - 실패
              Array[0] = ""
              Array[1] = -1
              Array[2] = -1
 * 예문 :
 * 참고 : sStart, sEnd의 위치를 알아내려면 다시한번 찾아야 하므로 속도 때문에 만듬
 *****************************************************************************************/

function fn_AMidCase(sOrg, sStart, sEnd, nStart)

{

    var pos_start, pos_end, ret_str;

    var arr = new Array("",-1,-1);

 

    if( fn_IsNull(sOrg) )  return "";

    if( fn_IsNull(sStart) ) sStart = "";

    if( fn_IsNull(sEnd) )  sEnd = "";

    if( fn_IsNull(nStart) ) nStart = 0;

 

    if( sStart == "" )

        pos_start = nStart;

    else {

        pos_start = PosCase(sOrg, sStart, nStart);

        if( pos_start < 0 ) return arr;

    }

 

    if( sEnd == "" )

        pos_end = sOrg.length;

    else{

        pos_end = PosCase(sOrg, sEnd, pos_start+sStart.length, nStart);

        if( pos_end < 0 ) return arr;

    }

 

    arr[0] = sOrg.substring(pos_start+sStart.length, pos_end);

    arr[1] = pos_start;

    arr[2] = pos_end;

    

    return arr;

}

 

 

☞  

 

☞  

 
 
 
 

  

'Nexacro-Function > String' 카테고리의 다른 글

Nexacro.String - 문자열 삭제.추가  (0) 2017.01.28
Nexacro.String - 문자열 치환  (0) 2017.01.28
Nexacro.String - token 추출  (0) 2017.01.28
Nexacro.String - padding  (0) 2017.01.28
Nexacro.String - Trim  (0) 2017.01.28
Posted by 농부지기
,

[ Nexacro.String -  token 추출 ]

 


/******************************************************************************************
 * 기능 : 문자열에서  토큰값 찾기
 * 인자 : sVal - 찾을 문자열
 *         sStartToken - 시작 토큰값
 *         sEndToken   - 종료 토큰값 (만약 종료 토큰을 못찾으면  마지막 값까지 찾아서 return)
 * 리턴 : 토큰에 대한 결과값
 * 예문 : gfn_TokenParsing1("NAME=김상무,DEPT=인사부,", "NAME=", ',')
 *****************************************************************************************/

function gfn_TokenParsing(sVal, sStartToken, sEndToken)

{

    var nStartPos;

    var nEndPos  ;

    

    if (gfn_IsNull(sEndToken)) sEndToken = ',';

    

    // 1. 시작 token

    nStartPos = sVal.indexOf(sStartToken);

    if (nStartPos < 0) return ''

    

    // 2. 종료 token

    if (gfn_IsNull(sEndToken)){

        nEndPos = String(sVal).length;

    }else{

        nEndPos = sVal.indexOf(sEndToken  , nStartPos);

        

        if (nEndPos < 0) nEndPos = String(sVal).length;

    }

    

    if (nEndPos < 0) return '';

    

    var rtn = sVal.substring(nStartPos + sStartToken.length, nEndPos).trim();

    

    if (gfn_IsNull(rtn)) rtn = '';

 

    return rtn;

}

 

/******************************************************************************************
 * 기능 : 문자열에서  토큰값 위치 찾기
 * 인자 : sVal   - 문자열
 *         sToken - 찾을 토큰
 *         nSeq   - 해당 동일 토큰이 여러개 존재 할 경우 몇번째 토큰을 찾을 순서
 * 리턴 : 토큰에 대한 위치
 * 예문 :
 *****************************************************************************************/

function gfn_TokenPosition(sVal, sToken, nSeq)

{

    var nStart=0;

    var nPos;

    

    sVal = sVal.toString();

    for(var i=1; i<=nSeq; i++){

        nPos = sVal.indexOf(sToken, nStart);

        nStart = nPos + sToken.length;

    }

    

    return nPos;

}

 

 

☞  

 

☞  

 
 
 
 

  

 

'Nexacro-Function > String' 카테고리의 다른 글

Nexacro.String - 문자열 치환  (0) 2017.01.28
Nexacro.String - 문자열 찾기  (0) 2017.01.28
Nexacro.String - padding  (0) 2017.01.28
Nexacro.String - Trim  (0) 2017.01.28
Nexacro.String - 문자 검증  (0) 2017.01.28
Posted by 농부지기
,

[ Nexacro.String -  padding ]

 


/******************************************************************************************
 * 기능 : 문자열이 지정된 길이가 되도록 왼쪽을 채우는 함수
 * 인자 :
 * 리턴 :
 * 예문 : gfn_LPad("abc", "*", 5)
 *****************************************************************************************/

function gfn_LPad(strString, strPadChar, nCount)

{

    var rtnStr = "";

    nCount = parseInt(nCount);

 

    if(gfn_GetLength(strString) < nCount) {

        var tmpStrPad = "";

        var cnt = nCount - gfn_GetLength(strString);

        for(var i=0; i<cnt; i++) {

            tmpStrPad += strPadChar;

        }

        

        rtnStr = tmpStrPad + strString;

    } else {

        rtnStr = strString

    }

 

    return rtnStr;

}

/******************************************************************************************
 * 기능 : 문자열이 지정된 길이가 되도록 오른쪽을 채우는 함수
 * 인자 :
 * 리턴 :
 * 예문 :  gfn_RPad("abc", "*", 5)
 *****************************************************************************************/

function gfn_RPad(strString, strPadChar, nCount)

{

    var rtnStr = "";

    nCount = parseInt(nCount);

    if(strString.length < nCount) {

        var tmpStrPad = "";

        var cnt = nCount - strString.length;

        for(var i=0; i<cnt; i++) {

            tmpStrPad += strPadChar;

        }

        

        rtnStr = strString + tmpStrPad;

    } else {

        rtnStr = strString

    }

 

    return rtnStr;

}

/******************************************************************************************
 * 기      능 : 문자 앞쪽 앞, 뒤쪽에 공백을 채워서 return
 * 인      자 : psValue - 적용값
                nMaxLen - 총자리수
                sGubn   - 앞쪽, 뒤쪽 구분 (없으면 뒤쪽)
 *****************************************************************************************/

function gfn_Padding(psValue, nMaxLen, sGubn){

    var nLen = psValue.length;

    

    if (nMaxLen < nLen) return psValue;

    

    for(var ii=0; ii<nMaxLen-nLen; ii++){

        if (sGubn == "LEFT")

            psValue = ' ' + psValue;

        else

            psValue += ' ';

    }

    return psValue;

}

☞  

 

'Nexacro-Function > String' 카테고리의 다른 글

Nexacro.String - 문자열 치환  (0) 2017.01.28
Nexacro.String - 문자열 찾기  (0) 2017.01.28
Nexacro.String - token 추출  (0) 2017.01.28
Nexacro.String - Trim  (0) 2017.01.28
Nexacro.String - 문자 검증  (0) 2017.01.28
Posted by 농부지기
,

[ Nexacro.String -  Trim ]

 


/******************************************************************************************
 * 기능 : 입력된 문자열의 좌우측 공백을 제거한 문자열을 구함.
 * 인자 : arg(좌우측 공백문자를 제거하려는 문자열)
 * 리턴 : 입력된 문자열에서 좌우측 공백이 제거된 문자열
 * 예문 :
 *****************************************************************************************/

function gfn_Trim(arg)

{

    if (arg == null) { return ""; }

    var sArg = arg.toString();

    return sArg.replace(/(^\s*)|(\s*$)/g, "");

}

 

/******************************************************************************************
 * 기능 : 입력된 문자열의 왼쪽 공백을 제거한 문자열을 구함.
 * 인자 : 왼쪽 공백문자를 제거하려는 문자열
 * 리턴 : 입력된 문자열에서 왼쪽 공백이 제거된 문자열
 * 예문 :
 *****************************************************************************************/

function gfn_Ltrim(arg)

{

    var sArg = arg.toString();

    return sArg.replace(/(^\s*)/, "");

}

 

/******************************************************************************************
 * 기능 : 입력된 문자열의 오른쪽 공백을 제거한 문자열을 구함.
 * 인자 : 오른쪽 공백문자를 제거하려는 문자열
 * 리턴 : 입력된 문자열에서 오른쪽 공백이 제거된 문자열
 * 예문 :
 *****************************************************************************************/

function gfn_Rtrim(arg)

{

    var sArg = arg.toString();

    return sArg.replace(/(\s*$)/, "");

}

 

 

☞  

 

☞  

 
 
 
 

  

'Nexacro-Function > String' 카테고리의 다른 글

Nexacro.String - 문자열 치환  (0) 2017.01.28
Nexacro.String - 문자열 찾기  (0) 2017.01.28
Nexacro.String - token 추출  (0) 2017.01.28
Nexacro.String - padding  (0) 2017.01.28
Nexacro.String - 문자 검증  (0) 2017.01.28
Posted by 농부지기
,

[ Nexacro.String -  문자 검증  ]

 

 


/******************************************************************************************
 * 기능 : 문자열이 알파벳(a~z, A~Z)만으로 구성되어 있는지 체크
 * 인자 : sValue - 체크할 문자열 ( 예 : "aAzZ" )
 * 리턴 : - 성공 = 알파벳만 있는경우 true
           - 실패 = 알파벳이 아닌 글자가 하나라도 있는 경우 false
 * 예문 :
 *****************************************************************************************/

function gfn_IsAlpha(sValue)

{

    if (gfn_IsNull(sValue)) return false;

 

    if (sValue.search("[^A-Za-z]") >= 0)

        return false;

    else

        return true;

}

 

/******************************************************************************************
 * 기능 : 문자열이 알파벳(a~z, A~Z), 숫자만으로 구성되어 있는지 체크
 * 인자 : sValue - 체크할 문자열 ( 예 : "aAzZ09" )
 * 리턴 : - 성공 = 알파벳, 숫자만 있는경우 true
           - 실패 = 알파벳, 숫자가 아닌 글자가 하나라도 있는 경우 false
 * 예문 :
 *****************************************************************************************/

function gfn_IsAlphaNumber(sValue)

{

    if (gfn_IsNull(sValue))  return false;

 

    if (sValue.search("[^A-Za-z0-9]") >= 0)

        return false;

    else

        return true;

}

 

/**
* 입력값이 알파벳인지 체크
* 아래 isAlphabet() 부터 isNumComma()까지의 메소드가
* 자주 쓰이는 경우에는 var chars 변수를
* global 변수로 선언하고 사용하도록 한다.
* ex) var uppercase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
*     var lowercase = "abcdefghijklmnopqrstuvwxyz";
*     var number    = "0123456789";
*     function isAlphaNum(input) {
*         var chars = uppercase + lowercase + number;
*         return containsCharsOnly(input,chars);
*     }
*/

function isAlphabet(input) {

    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

    return containsCharsOnly(input,chars);

}

 

/**
* 입력값이 알파벳 대문자인지 체크
*/

function isUpperCase(input) {

    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

    return containsCharsOnly(input,chars);

}

 

/**
* 입력값이 알파벳 소문자인지 체크
*/

function isLowerCase(input) {

    var chars = "abcdefghijklmnopqrstuvwxyz";

    return containsCharsOnly(input,chars);

}

/******************************************************************************************
 * 기능 : 문자열이 한글로만 구성되어 있는지 체크
 * 인자 : sValue - 체크할 문자열 ( 예 : "가나다" )
 * 리턴 : - 성공 = 한글만 있는경우 true
          - 실패 = 한글이 아닌 글자가 하나라도 있는 경우 false
 * 예문 :
 *****************************************************************************************/

function gfn_IsKor(sValue)
{
    if (gfn_IsNull(sValue))  return false;
    for (var i=0; i<sValue.length; i++)
    {
        if (!((sValue.charCodeAt(i) > 0x3130 && sValue.charCodeAt(i) < 0x318F) || (sValue.charCodeAt(i) >= 0xAC00 && sValue.charCodeAt(i) <= 0xD7A3)))
            return false;
    }
    return true;
}

 

 


/*******************************************************************************
 ★ 설명
    문자열이 숫자형식에 맞는지 여부 체크
 ★ Parameter
    1. sNum   : 체크할 문자열숫자 ( 예 : "-1234.56" ) (단, ","가 들어있으면 안 됨)
 ★ return
    - 숫자형식에 맞는경우 = true
    - 숫자형식에 맞지않는 경우 = false
 ******************************************************************************/

function fn_IsNum(sNum)

{

 var c;

 var point_cnt=0;

 var ret=true;

 

 if( fn_IsNull(sNum) )  return false;

 

 for( i = 0 ; i < sNum.length ; i++ )

 {

  c = sNum.charAt(i);

  if( i == 0 && ( c == "+" || c == "-" ) );

  else if( c >= "0" && c <= "9" );

  else if( c == "." )

  {

   point_cnt++;

   if( point_cnt > 1 )

   {

    ret = false;

    break;

   }

  }

  else

  {

   ret = false;

   break;

  }

 }

 return ret;

}

 

/**
* 입력값에 숫자만 있는지 체크
*/

function isNumber(input) {

    var chars = "0123456789";

    return containsCharsOnly(input,chars);

}

/**
* 입력값이 알파벳,숫자로 되어있는지 체크
*/

function isAlphaNum(input) {

    var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

    return containsCharsOnly(input,chars);

}

 

/**
* 입력값이 숫자,대시(-)로 되어있는지 체크
*/

function isNumDash(input) {

    var chars = "-0123456789";

    return containsCharsOnly(input,chars);

}

 

/**
* 입력값이 숫자,콤마(,)로 되어있는지 체크
*/

function isNumComma(input) {

    var chars = ",0123456789";

    return containsCharsOnly(input,chars);

}

 

/**
* 입력값이 사용자가 정의한 포맷 형식인지 체크
* 자세한 format 형식은 자바스크립트의 'regular expression'을 참조
*/

function isValidFormat(input,format) {

    if (input.value.search(format) != -1) {

        return true; //올바른 포맷 형식

    }

    return false;

}

 

 

/**
* 입력값이 이메일 형식인지 체크
* ex) if (!isValidEmail(form.email)) {
*         alert("올바른 이메일 주소가 아닙니다.");
*     }
*/

function isValidEmail(input) {

//    var format = /^(\S+)@(\S+)\.([A-Za-z]+)$/;

    var format = /^((\w|[\-\.])+)@((\w|[\-\.])+)\.([A-Za-z]+)$/;

    return isValidFormat(input,format);

}

 

/**
* 입력값이 전화번호 형식(숫자-숫자-숫자)인지 체크
*/

function isValidPhone(input) {

    var format = /^(\d+)-(\d+)-(\d+)$/;

    return isValidFormat(input,format);

}

 
 
 
 

  

 

'Nexacro-Function > String' 카테고리의 다른 글

Nexacro.String - 문자열 치환  (0) 2017.01.28
Nexacro.String - 문자열 찾기  (0) 2017.01.28
Nexacro.String - token 추출  (0) 2017.01.28
Nexacro.String - padding  (0) 2017.01.28
Nexacro.String - Trim  (0) 2017.01.28
Posted by 농부지기
,