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 相关文章推荐
创建一个复制UBB软件信息的链接或按钮的js代码
Jan 06 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
Sep 10 Javascript
js出生日期 年月日级联菜单示例代码
Jan 10 Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
May 15 Javascript
js取得html iframe中的元素和变量值
Jun 30 Javascript
JQuery Tips相关(1)----关于$.Ready()
Aug 14 Javascript
javascript实现图片上传前台页面
Aug 18 Javascript
Bootstrap每天必学之标签与徽章
Nov 27 Javascript
bootstrap3 兼容IE8浏览器!
May 02 Javascript
jquery仿ps颜色拾取功能
Mar 08 Javascript
Vue.js组件间通信方式总结【推荐】
Nov 23 Javascript
openlayers4实现点动态扩散
Aug 17 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/09/04 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
PHP搭建大文件切割分块上传功能示例
2017/01/04 PHP
php简单计算权重的方法示例【适合抽奖类应用】
2019/06/10 PHP
JavaScript实现Sleep函数的代码
2007/03/04 Javascript
符合W3C网页标准的iframe标签的使用方法
2007/07/19 Javascript
js监听输入框值的即时变化onpropertychange、oninput
2011/07/13 Javascript
javascript SpiderMonkey中的函数序列化如何进行
2012/12/05 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
Node.js的npm包管理器基础使用教程
2016/05/26 Javascript
nodejs 的 session 简单使用
2016/06/06 NodeJs
原生Javascript和jQuery做轮播图简单例子
2016/10/11 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
jQuery中Chosen三级联动功能实例代码
2017/03/07 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
2017/09/05 Javascript
laydate只显示时分 不显示秒的功能实现方法
2019/09/28 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
2019/11/17 Javascript
Python简单获取二维数组行列数的方法示例
2018/12/21 Python
python aiohttp的使用详解
2019/06/20 Python
解决Pycharm后台indexing导致不能run的问题
2019/06/27 Python
Python类的绑定方法和非绑定方法实例解析
2020/03/04 Python
详解Python中import机制
2020/09/11 Python
HTML5实现的图片无限加载的瀑布流效果另带边框圆角阴影
2014/03/07 HTML / CSS
豪华复古化妆:Besame Cosmetics
2019/09/06 全球购物
家得宝墨西哥官网:The Home Depot墨西哥
2019/11/18 全球购物
《守株待兔》教学反思
2014/03/01 职场文书
家电业务员岗位职责
2014/03/10 职场文书
企业精细化管理实施方案
2014/03/23 职场文书
初中作文评语大全
2014/04/23 职场文书
预备党员对照检查材料思想汇报
2014/09/24 职场文书
入党函调证明材料
2014/12/24 职场文书
个人德育工作总结
2015/03/05 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
MySQL命令行操作时的编码问题详解
2021/04/14 MySQL
抖音动画片,皮皮虾,《治愈系》动画在用这首REMIX作为背景音乐,Anak ,The last world with you完整版
2022/03/16 杂记