JavaScript 空位补零实现代码


Posted in Javascript onFebruary 26, 2010

实现一:

/* 平淡无奇法 */ 
function pad(num, n) { 
var i = (num + "").length; 
while(i++ < n) num = "0" + num; 
return num; 
}

上面的代码太平淡无奇,体现不了我的真实水平。于是有了实现二:
/* 神奇递归法 */ 
function pad2(num, n) { 
if ((num + "").length >= n) return num; 
return pad2("0" + num, n); 
}

神奇的递归,每次都能让 mm 投来赞美和钦慕的眼神~~
然而,高手过招,讲究的是一招致命。上面的代码居然用了两行,简直是侮辱。琢磨一下,一行神奇的代码涌上心头:
/* 奇淫技巧法 */ 
function pad3(num, n) { 
return (Array(n).join(0) + num).slice(-n); 
}

这次 mm 投来的是膜拜的眼神了,hiahia~~~
=== 我不是空间分隔线,我是很长很长的时间分割线。经历了 n 年后 ===
一日,秋高气爽,心旷神怡。与友闲坐菩提树下,把酒下棋。
友曰:BP 君,自从你走后,可害苦了我。你留下的那些神奇代码,害我头发提前掉了 3 年。
我大惊:此话怎讲?
友一脸不堪回首:记得那个神奇的 pad3 函数不?在你走后 1 年内,公司的业务激增。pad3 有个 bug, 某些情况下会截取掉数字的前几位。比如 pad3(123456, 5), 返回的是 23456. 这 bug 被黑客发现了,导致了好几起大规模的钓鱼事件,公司损失上百万。当时老总勒令我一天内找出 bug 所在,老兄你的神奇代码却害得我花了 3 天才定位到。除了 pad3, 还有一个神奇的 xxoo9 函数,当时……
老友还在絮絮叨叨,我听完第一段时,已黯然失魂。低头琢磨 pad3 的写法,的确存在截取 bug, 这用在交易系统,狂汗……
与老友话别后,迫不及待地从 GoogleFace 的一朵云中取回当年的 pad3 和 xxoo9 等代码,一测试,大惊:
tricky_code.html
pad3 不仅存在截取字符 bug, 居然还有性能问题……
一番激烈的思想斗争。
迷迷茫茫中,遥见唐僧笑侃而至:
世人皆笑我罗嗦,我道世人看不透。
欲解此惑看来时,质朴简单是真知。
唐僧抛下一卷轴,大笑而去:
/* 质朴长存法 */ 
function pad(num, n) { 
var len = num.toString().length; 
while(len < n) { 
num = "0" + num; 
len++; 
} 
return num; 
}

观之,吾亦大笑,随唐僧取经去也……
注:一直想写这样一篇文章。今天闲逛 51js, 偶然看到一贴:位数不够前面补 0 的问题,于是立刻就有了这篇文章的构思。对于补零,我的奇淫反应是return Array(n - ("" + num).length + 1).join(0) + num;(也有 bug),和果果的类似,但考虑到震撼性(果果的 bug 更隐蔽),最后采用了果果的代码来举例。无论如何,感谢果果。
Javascript 相关文章推荐
使用js获取QueryString的方法小结
Feb 28 Javascript
javascript读取xml实现javascript分页
Dec 13 Javascript
JavaScript中实现sprintf、printf函数
Jan 27 Javascript
JavaScript实现向右伸出的多级网页菜单效果
Aug 25 Javascript
BooStrap对导航条的改造实践小结
Sep 21 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
Nov 18 Javascript
jquery实现全选、全不选以及单选功能
Mar 23 jQuery
bootstrap table插件的分页与checkbox使用详解
Jul 23 Javascript
Node.js文件编码格式的转换的方法
Apr 27 Javascript
详解angular如何调用HTML字符串的方法
Jun 30 Javascript
深入理解 JS 垃圾回收
Jun 03 Javascript
javascript实现鼠标点击生成文字特效
Dec 24 Javascript
javascript replace()正则替换实现代码
Feb 26 #Javascript
javascript function调用时的参数检测常用办法
Feb 26 #Javascript
jquery1.4 教程二 ajax方法的改进
Feb 25 #Javascript
jquery 1.4.2发布!主要是性能与API
Feb 25 #Javascript
jQuery 方法大全方便学习参考
Feb 25 #Javascript
js 面向对象的技术创建高级 Web 应用程序
Feb 25 #Javascript
javascript 命名规则 变量命名规则
Feb 25 #Javascript
You might like
php实现首页链接查询 友情链接检查的代码
2010/01/05 PHP
安装apache2.2.22配置php5.4(具体操作步骤)
2013/06/26 PHP
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
php发送post请求的三种方法
2014/02/11 PHP
通过php添加xml文档内容的方法
2015/01/23 PHP
php+ajax无刷新上传图片的实现方法
2016/12/06 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
2019/06/06 PHP
javascript 检测浏览器类型和版本的代码
2009/09/15 Javascript
cnblogs中在闪存中屏蔽某人的实现代码
2010/11/14 Javascript
javascript 运算数的求值顺序
2011/08/23 Javascript
使用jquery实现图文切换效果另加特效
2013/01/20 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
jQuery阻止同类型事件小结
2013/04/19 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
2016/08/01 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
微信小程序自动客服功能
2017/11/02 Javascript
ES6中数组array新增方法实例总结
2017/11/07 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
2018/03/23 jQuery
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
JSX在render函数中的应用详解
2019/09/04 Javascript
在Python的web框架中配置app的教程
2015/04/30 Python
Python的Bottle框架中实现最基本的get和post的方法的教程
2015/04/30 Python
python并发编程之多进程、多线程、异步和协程详解
2016/10/28 Python
对python中的乘法dot和对应分量相乘multiply详解
2018/11/14 Python
python中logging模块的一些简单用法的使用
2019/02/22 Python
Django密码存储策略分析
2020/01/09 Python
利用CSS3实现折角效果实例源码
2016/09/28 HTML / CSS
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
劳动实践课感言
2014/02/01 职场文书
大课间活动实施方案
2014/03/06 职场文书
2015年社区工作总结
2015/04/08 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书
Oracle11g R2 安装教程完整版
2021/06/04 Oracle
CSS 实现Chrome标签栏的技巧
2021/08/04 HTML / CSS
SpringBoot接入钉钉自定义机器人预警通知
2022/07/15 Java/Android