chartHelper.js 1.31 KB
define(['mUtil'], function (mUtil) {
	return {
		formatNumber:function(num, pattern) {
			if(!pattern) return num;
			
			var vprefix = "";
			var vsuffix = "";
			var m = /^\[(.*?)\]/.exec(pattern);//获取开头[]
			if(m) {
				vprefix = m[1];
			}				
			m = /.*\[([^\]]*)\]$/.exec(pattern);
			if(m) {
				vsuffix = m[1];
			}
			if(vprefix.length > 0 && vprefix == vsuffix){
				var pstr = pattern.substring(1,pattern.length - 1);
				if(vsuffix == pstr) vprefix = "";
			}
			pattern = pattern.replace(/\[.*?\]/g,'');//去除所有中括号及内容
		    if (!isNaN(parseFloat(num)) && isFinite(num) && pattern.length > 0) {
				var comma = false;  
				if(pattern.indexOf("#,##") != -1) comma = true;  				
				var fmtarr = pattern ? pattern.split('.') : [''];
				var precision = -1;
				if(fmtarr.length > 1){
					if(fmtarr[1].length > 0 && fmtarr[1].match(/0/g)){
						precision = fmtarr[1].match(/0/g).length;
					}else{
						precision = 0;
					}
				}
				var parts;
		        num = Number(num);
			    num = (precision !== -1 ? num.toFixed(precision) : num).toString(); 
		        parts = num.split('.');
		        if(comma){
			        parts[0] = parts[0].toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1' + (','));
		        }
		        num = parts.join('.');
		    }
		    return vprefix + num + vsuffix;
		}
	};
});