바인딩을 사용하여 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 |