当前位置: 首页 > 图文教程 > 网络编程 > Javascript > js prototype 格式化数字 By shawl.qiu

Javascript
Javascript 篱式条件判断
FormValidate 表单验证功能代码更新并提供下载
IE php关于强制下载文件的代码
Javascript 注册事件浅析
js网页中随意拖动的小方块实现代码
javascript charAt() arr[i]数组实例代码
jquery HotKeys轻松搞定键盘事件代码
JQUERY复选框CHECKBOX全选,取消全选
jquery复选框CHECKBOX全选、反选
JQUERY CHECKBOX全选,取消全选,反选方法三
一个简单但常用的javascript表格样式_鼠标划过行变色 简洁实现
javascript用DIV模拟弹出窗口_窗体滚动跟随
Javascript多种浏览器兼容写法分析
JavaScript监测ActiveX控件是否已经安装过的代码
javascript结合Cookies实现浏览记录历史
javascript textarea字数限制
动态修改DOM 里面的 id 属性的弊端分析
js实现右下角窗口弹出窗口效果
javascript移动的盒子效果代码
js链接确认提醒功能

Javascript 中的 js prototype 格式化数字 By shawl.qiu


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 281 ::
收藏到网摘: n/a

说明:
最近打算把 Js 练精点, 只好暂时放弃原来掌握的还行的 VBScript, 全面使用 Jscript/Javascript.
发现 VBs 和 Js 都有些双方没有的功能...
比如 Js 就没有 VBs 的 formatNumber, formatN*** 类的函数.
但是 Js 几乎随处可用 正则, 这是我的长处, 这点特吸引我, 不像 VBs 只有 RegExp 使用域可以使用正则.
引用一本书里的一句话:
The way to really learn a new programming language is to write programs with it.
--JavaScript: The Definitive Guide, 4th Edition
目录:
1. 内容: Number.prototype.formatNumber() 源代码.
2. 效率测试
shawl.qiu
2006-10-14
http://blog.csdn.net/btbtd
1. 内容: Number.prototype.formatNumber() 源代码.
linenum
复制代码 代码如下:

<%
var $num=9876577784321.011
Number.prototype.formatNumber=function(pointPsti){
/*--------------------------------------------------------*\
* Javascript 格式化数字原型, By shawl.qiu
* 客户端使用: var $num=9876577784321.011; document.write('<br/>'+$num.formatNumber(3)+'<br/>');
* 服务端使用: var $num=9876577784321.011; Response.Write($num.formatNumber(3));
\*--------------------------------------------------------*/
if(this=='')return false;
if(typeof(pointPsti)=='undefined'){
var pointPsti=3;
} else { if(isNaN(pointPsti)){pointPsti=3}; }
var num=this+'', numDc='', temp='';
if(num.indexOf('.')>-1){ ptPs=num.indexOf('.'); numDc=num.substr(ptPs); num=num.substr(0,ptPs); }
for(var i=num.length-1; i>=0;temp+=num.substr(i,1), i--);
var re=new RegExp('(.{'+pointPsti+'})','g');
temp=temp.replace(re,'$1,'); num='';
for(var i=temp.length-1; i>=0; num+=temp.substr(i,1), i--);
num=num.replace(/^\,|\,$/,'')+numDc;
return num; // shawl.qiu script
}
Response.Write($num.formatNumber(3)+'<br/>');
%>

2. 效率测试
输出 10,000 次, 耗时 2797 毫秒.
输出 5,000 次, 耗时 1515 毫秒.
输出 2,000 次, 耗时 672 毫秒.
输出 1,000 次, 耗时 281 毫秒.
输出 500 次, 耗时 140 毫秒.
输出 100 次, 耗时 16 毫秒.