`
tigerl
  • 浏览: 97118 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JS数字格式化实用小工具

 
阅读更多
在页面显示的时候,会有这样一种需求,300,200,88.22¥,其实这个工作对于一个工作量不大的页面来说,完全可以在前段处理,减轻服务端的压力,所以就写了这么个小东西,很实用的,还支持负数的哦,和符号前置或后置

var NumberFormat = function( places, seperator, unit, prepose ){
	this.unit = unit ? unit : '';
	this.bits = places ? places : 3;
	this.prepose = prepose ? true : false;
	this.seper = seperator ? seperator : ', ';
};

NumberFormat.prototype.format = function( source ){
	if( source && $.isNumeric( source ) ){
		var res,
			ss = source.toString(),
			sign = ss.charAt( 0 ),
			len = this.bits,
			_index = ss.indexOf( '.' ),
			l = ss.length;
		
		if( _index >= 0 )
			l = _index;
		
		if( !$.isNumeric( sign ) ){
			l = l - 1;
			ss = ss.substring( 1 );
		}else{
			sign = '';
		}
		
		if( len >= l )
			return source;
		
		var nsize = Math.ceil( l/len ),
			na = new Array( nsize ),
			index = 0;
		
		for( var i = l; i > 0; i = i-len ){
			if( i-len <= 0 ){
				na[ index++ ] = ss.substring( i, 0 );
			}else{
				na[ index++ ] = ss.substring( i, i-len );
			}
		}
		
		res = na.reverse().join( this.seper );
		if( _index >= 0 )
			res += ss.substring( _index + 1 );
		
		if( this.prepose )
			res = this.unit + res;
		else
			res = res + this.unit;
		
		return sign + res;
    }
};

/**
 * places, seperator, unit, prepose 4个参数的意思:
 * 
 * places: 几个分为一组,默认3个为一组
 * seperator: 分隔符,默认为逗号分隔
 * unit: 单位,默认为空
 * prepose: 是否把单位前置,默认为不前置
 * 
*/

/**
 * format()方法接受一个参数,需要格式化的数字或者数字字符串,会返回格式化后的结果
 */



下面是测试代码:
var nf = new NumberFormat();
var res = nf.format(32342342342342);
console.log(res);//32, 342, 342, 342, 342
res = nf.format(-32342342342342);
console.log(res);//-32, 342, 342, 342, 342
nf = new NumberFormat(4, '-', '$');
res = nf.format(-32342342342342);
console.log(res);//-32-3423-4234-2342$
res = nf.format(32342342342342);
console.log(res);//32-3423-4234-2342$ 


分享到:
评论

相关推荐

    tutti-quanti-shelf:由 Electron 构建的各种面向开发人员的实用程序集合,包含在一个应用程序中

    公用事业以下实用程序当前可用: CIDR 计算器CSS 游标演示数码时钟图形可视化工具IETF 语言标签JavaScript 解析器JavaScript 运行程序JSON 格式化程序数学渲染器罗马字假名罗马数字系统信息文本转换器文字转语音XML ...

    计算机应用技术(实用手册)

    实用手册 Xnllz 2011.7.29 目录 第一章COMS的设置 1 1.STANDARD CMOS SETUP(标准CMOS设定)用来设定日期、时间、软硬盘规格、工作类类型。 3 2.BIOS能功设定 5 3.Advanced Chipset Features...

    JavaScript网页特效范例宝典源码

    第3章 实用JavaScript函数 129 3.1 数据验证 130 实例084 通过正则表达式验证日期 130 实例085 验证输入的日期格式是否正确 132 实例086 检查表单元素是否为空 134 实例087 验证E-mail是否正确 135 实例088 通过正则...

    万能文本编辑器V1.3

    13、JS/HTML格式化工具:对弄网页的朋友们比较实用; 14、置顶编辑器:这款编辑器总是置于顶层,方便经常需要从记事本、word等软件往其他应用程序(比如数据库)复制内容的朋友们; 15、日期计算:计算N天后、N天...

    Jqury基础教程

    6.3.3 序列化表单 6.4 关注请求 6.5 AJAX和事件 6.6 安全限制 6.7 其他工具 6.7.1 低级AJAX方法 6.7.2 修改默认选项 6.7.3 部分加载HTML页面 6.8 小结 第7章 表格操作 7.1 排序和分页 7.1.1 服务器端排序...

    java版斗地主源码-awesome-star-libs:将自己收藏的前端库整理成一份清单

    一个用于格式化和操作数字的 javascript 库。 Node.js 资源大全中文版,内容包括:命令行工具、日志、调试、HTTP、构建工具、文件系统、模板、Web 框架、流程控制、文本、图片和数据校验等。由「开源前哨」和「前端...

    JAVA上百实例源码以及开源项目

    有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以改进做成小工具。 Java右键弹出...

    JAVA上百实例源码以及开源项目源代码

    有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以改进做成小工具。 Java右键弹出...

    C#基类库(苏飞版)

    app消息格式化类,返加字符串帮助类 ResourceManager C#一个操作Resource的帮助类 ResourceManagerWrapper Resources 操作Resources的帮助类,使用Api的方式 Sample.xml 11.XML操作类 XmlHelper 操作Xml文档的...

    C#基类库大全下载--苏飞版

    app消息格式化类,返加字符串帮助类 ResourceManager ResourceManagerWrapper Resources Sample.xml 11.XML操作类 XmlHelper XMLProcess 12.弹出消息类 MessageBox ShowMessageBox 13.导出Excel 操作类 DataToExcel...

    网管教程 从入门到精通软件篇.txt

    网管教程 从入门到精通软件篇 ★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 ...JS:javascript源文件 JSP:HTML网页,其中包含有对一个Java servlet...

    uid:一个微小的工具(130B到205B),可以快速生成固定长度的随机ID

    微型(130B至205B)和实用程序,可将固定长度的唯一ID随机化 快速对象ID。适用于Node.js和浏览器。使用小写字母数字字符( a-z0-9 )生成固定长度的随机输出字符串。要生成UUID.V4格式的ID,请参阅 。 该模块提供...

    ocarina:用于普通 ol' unix 时间戳的功能日期时间库

    WIP WIP WIP WIP WIP 陶笛 用于普通 ol' 时间戳的功能性 JavaScript 日期时间库。 设计理念 原始 ...进出陶笛之地的实用工具 如果您以某种奇怪的格式从某个外部服务接收日期,只需使用ocarina.fromSt

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--格式化之DecimalFormat数字格式化 |--桌面快捷方式的添加代码示例 |--桌面控件widget的创建方法 |--模拟发短信 指定号码 短信窃听提示 |--消息机制 mesage looper |--滑动之左右滑动的两种定义 |--电话簿读取联系...

    java web 视频、电子书、源码(李兴华老师出版)

    13.4.4、数字格式化标签 13.4.5、日期时间格式化标签 13.4.6、设置时区 13.5、SQL标签库 13.5.1、&lt;sql:setDataSource&gt; 13.5.2、数据库操作标签 13.5.3、事务处理 13.6、XML标签库 13.6.1、XPath简介...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例098 日期、时间的格式化输出 131 实例099 比对论坛中帖子的相似度 132 实例100 对用户注册的密码进行加密和解密 132 实例101 保护URL地址中传递的参数 133 实例102 解析URL地址中传递的编码参数 134 实例103 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例098 日期、时间的格式化输出 131 实例099 比对论坛中帖子的相似度 132 实例100 对用户注册的密码进行加密和解密 132 实例101 保护URL地址中传递的参数 133 实例102 解析URL地址中传递的编码参数 134 实例103 ...

    java源码包---java 源码 大量 实例

    有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码加以改进做成小工具。 Java右键弹出...

Global site tag (gtag.js) - Google Analytics