js/as游戏开发过程中常用的一些字符串格式化

格式化数字

12300 = 12.30K

public function frameValue(num:Number):String
        {
            var value:Number = num;
            if (num < 10000)
            {
                return num.toString();                
            }
            else if (num < 10000000)
            {
                value = value / 1000;
                if (value >= 1000)
                {
                    value = Math.floor(value);
                }
                else if (value >= 100)
                {
                    value = Math.floor(value * 10)/10;
                }
                else if (value >= 10)
                {
                    value = Math.floor(value * 100)/100;
                }
                return value.toString() + "K";
            }
            else if (num < 10000000000)
            {
                value = value / 1000000;

                var fixed:Number = 0;
                if (value >= 1000)
                {
                    value = Math.floor(value);
                }
                else if (value >= 100)
                {
                    value = Math.floor(value * 10)/10;
                }
                else if (value >= 10)
                {
                    value = Math.floor(value * 100)/100;
                }
                return value.toString() + "M";
            }
            else 
            {
                value = value / 1000000000;
                if (value >= 1000)
                {
                    value = Math.floor(value);
                }
                else if (value >= 100)
                {
                    value = Math.floor(value * 10)/10;
                }
                else if (value >= 10)
                {
                    value = Math.floor(value * 100)/100;
                }
                return value.toString() + "G";
            }
            
            return "";
        }

123456789 = 123,456,789

public static function frameValue2(num:Number):String
{
	var txt:String = "";
	num = num.toString();
	while(num.length>3){				
		txt = "," + num.slice(-3) + txt;
		num = num.slice(0, num.length-3);
	}
	if (num) 
		txt = num + txt;
	return txt;
}

格式化时间

1

public static function frameTime(time:Number):String
        {
            var txt:String = "";

            var _d:Number = 0;
            if (time > 86400)
            {
                _d = Math.floor(time / 86400);
                time -= (86400*_d);

                txt = _d + "D ";
            }
            
            var _s:Number =  Math.floor(time / 3600);
            var _f:Number =  Math.floor((time - 3600*_s) / 60);
            var _m:Number = Math.ceil(time - 3600 * _s - 60 * _f);
			
            txt += ("00" + _s).substr(-2) + ":" + ("00" + _f).substr(-2) + ":" + ("00" + _m).substr(-2);
            return txt;
        }

按格式输出时间

/* time 			时间戳			
	formatString  	"YY年MM月DD日" 	->  "2019年09月20日"
 			 		"YY-MM-DD" 		->  "2019/09/20"
*/
public static function frameTimeFM(time:Number, formatString:String):String
{
     var date = new Date(timeStamp);
     var sec_str = "";
     var min_str = "";
     var hour_str = "";
     sec_str = date.getSeconds() >= 10 ?  date.getSeconds() + "" : "0" +  date.getSeconds();
     min_str = date.getMinutes() >= 10 ? date.getMinutes() + "" : "0" + date.getMinutes();
     hour_str = date.getHours() >= 10 ? date.getHours() + "" : "0" + date.getHours();
     year_str = date.getFullYear();
     mon_str = "0" + (date.getMonth() + 1);
     mon_str = mon_str.substring(mon_str.length -2 );
     day_str = "0" + date.getDate();
     day_str = day_str.substring(day_str.length -2 );
     formatString = formatString.replace(/YY/g,year_str);
     formatString = formatString.replace(/MM/g,mon_str);
     formatString = formatString.replace(/DD/g,day_str);
     formatString = formatString.replace(/hh/g,hour_str);
     formatString = formatString.replace(/mm/g,min_str);
     formatString = formatString.replace(/ss/g,sec_str);
     
     return formatString;
}

3

function frameTimeOffline(time:Number):String
		{
			 var txt:String = "";

            if (time >= 86400)
            {//天
               var _d:Number = Math.floor(time / 86400);   
			   
			   return ComFunConfig.formate(TemplateReader.getLanguageById(105122), _d);
            }
			else if (time >= 3600)
			{//小时
				 var _s:Number =  Math.floor(time / 3600);
				 
				 return ComFunConfig.formate(TemplateReader.getLanguageById(105120), _d);
			}
			else 
			{//分钟
				var _m:Number = Math.ceil(time / 60);
				return ComFunConfig.formate(TemplateReader.getLanguageById(105119), _m);
			}
            
            return txt;
		}

字符串替换

“i love {0}”,[“you”] -> i love you

public funciton format(str:String, args:Array)
{
	if ( args instanceof Array ) {
	    for (var i = 0; i < args.length; i++) {
	        if (args[i] != undefined) {
	            var reg = new RegExp("({)" + i + "(})", "g");
	            str = str.replace(reg, args[i]);
	        }
	    }
	}else {
	    for (var i in args) {
	        if (args[i] != undefined) {
	            var reg = new RegExp("({)" + i + "(})", "g");
	            str = str.replace(reg, args[i]);
	        }
	    }
	}
	
	return str;
}

正则表达式

字符串去掉空格

    public static function Trim(string:String):String  
    {
        return str.replace(/\s+/g, "");
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值