바인딩을 사용하여 masknumber 를 사용하여 자동으로 천단위로 콤마(,)를 출력 할 수 있지만.


하나의 필드에 숫자타입과 문자열을 혼합하여 사용하는 경우 숫자타입부분에 콤마를 생성해서 문자열로 리턴하는 스크립트이다.


utlf_numberFormat()


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

 * 함수명     : utlf_numberFormat()

 * 설명       : 숫자에 ','를 입력하여 반환

 * argument    : strNum : 숫자 또는 숫자형식 문자열( 예 : -1234567.89 , "123456789") 

 *                     sFind : 찾고자 하는 문자열( 예 : "bb" ) 

 *                     nStart : 검색 시작위치 (옵션 : Default=0) ( 예 : 1 ) 

 * return Type : (String)

 *               변경된 문자열이나 숫자가 없으면 Null 리턴

 *               변경된 문자열이나 숫자가 있으면 ","가 들어간 문자열 ( 예 : -1,234,567.89 )

 * Test Ex)

 * trace("문자열" + utlf_numberFormat("1234565789"));

 * trace("문자열 소수점 포함" + utlf_numberFormat("12345657.89"));

 * trace("문자열 - 포함" + utlf_numberFormat("-1234565789"));

 * trace("문자열 - 포함 소수점 포함" + utlf_numberFormat("-12345657.89"));

 * 

 * trace("숫자형" + utlf_numberFormat(1234565789));

 * trace("숫자형 소수점 포함" + utlf_numberFormat(12345657.89));

 * trace("숫자형 - 포함" + utlf_numberFormat(-1234565789));

 * trace("숫자형 - 포함 소수점 포함" + utlf_numberFormat(-12345657.89));

 * 

 * trace("한글,영문 포함" + utlf_numberFormat("한x-12345657.89"));

 * trace("한글 포함" + utlf_numberFormat("한-12345657.89"));

 * trace("영문 포함" + utlf_numberFormat("x-12345657.89"));

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

function utlf_numberFormat(strNum)

{

var ppos, sDigit, nEnd, nStart=0, sRet=""; 


if( utlf_isNull(strNum)  ) return ""

var reg = /(^[+-]?\d+)(\d{3})/;   // 정규식

if( !reg.test(strNum) ) return strNum;

strNum = strNum.toString();

if( strNum.charAt(0) == "+" || strNum.charAt(0) == "-" ) { 

sRet += strNum.charAt(0); 

nStart = 1

}

ppos = utlf_Pos(strNum, ".", nStart); 

if( ppos < 0 ) {

nEnd = strNum.length; 

}

else {

nEnd = ppos;

}

sDigit = strNum.substr(nStart, nEnd - nStart); 

for( pos = 0 ; pos < sDigit.length ; pos ++ ) { 

if( pos != 0 && (sDigit.length-pos)%3 == 0

sRet += ","

sRet += sDigit.charAt(pos);

sRet += strNum.substr(nEnd); 


return sRet; 

}


utlf_Pos()


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

 * 함수명     : utlf_Pos()

 * 설명       : 문자열의 위치를 대소문자 구별하여 찾는다 

 * argument    : sOrg : 원래 문자열( 예 : "aaBBbbcc" ) 

 *               sFind : 찾고자 하는 문자열( 예 : "bb" ) 

 *               nStart : 검색 시작위치 (옵션 : Default=0) ( 예 : 1 ) 

 * return Type : (Number)

 *               찾고자 하는 문자열의 시작위치가 없으면 -1 리턴

 *               찾고자 하는 문자열의 시작위치 ( 예 : 4 ) 

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

function utlf_Pos(sOrg, sFind, nStart)

{

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

    if( utlf_isNull(nStart) )    nStart = 0;


    return sOrg.indexOf(sFind, nStart);

}


'Tools > XPlatform' 카테고리의 다른 글

GetFormFromHandle  (0) 2015.11.06
autosizingtype 문제점  (0) 2015.10.13

+ Recent posts