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控制代码暂停的实现方法分享
Oct 11 Javascript
js字符串转换成xml对象并使用技巧解读
Apr 18 Javascript
解析JavaScript中的标签语句
Jun 19 Javascript
关于img的href和src取变量及赋值的方法
Apr 28 Javascript
判断输入的字符串是否是日期格式的简单方法
Jul 11 Javascript
js获取腾讯视频ID的方法
Oct 03 Javascript
Javascript中call,apply,bind方法的详解与总结
Dec 12 Javascript
基于JavaScript实现焦点图轮播效果
Mar 27 Javascript
js图片轮播插件的封装
Jul 21 Javascript
基于LayUI实现前端分页功能的方法
Jul 22 Javascript
解决Angular2 router.navigate刷新页面的问题
Aug 31 Javascript
对vue下点击事件传参和不传参的区别详解
Sep 15 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
将FCKeditor导入PHP+SMARTY的实现方法
2015/01/15 PHP
php while循环控制的简单实例
2016/05/30 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
Laravel下生成验证码的类
2017/11/15 PHP
JavaScript实际应用:innerHTMl和确认提示的使用
2006/06/22 Javascript
基于jQuery的简单的列表导航菜单
2011/03/02 Javascript
jQuery实现表头固定效果的实例代码
2013/05/24 Javascript
用js模拟struts2的多action调用示例
2014/05/19 Javascript
Jquery自定义button按钮的几种方法
2014/06/11 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
JQuery悬停控制图片轮播——代码简单
2015/08/05 Javascript
jquery-mobile表单的创建方法详解
2016/11/23 Javascript
localStorage实现便签小程序
2016/11/28 Javascript
nodejs和php实现图片访问实时处理
2017/01/05 NodeJs
vue之数据交互实例代码
2017/06/20 Javascript
Express+Nodejs 下的登录拦截实现代码
2017/07/01 NodeJs
js图片上传的封装代码
2017/08/01 Javascript
vue中使用input[type=&quot;file&quot;]实现文件上传功能
2018/09/10 Javascript
Vue监听滚动实现锚点定位(双向)示例
2019/11/13 Javascript
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
Python中with及contextlib的用法详解
2017/06/08 Python
python遍历序列enumerate函数浅析
2017/10/17 Python
Python针对给定列表中元素进行翻转操作的方法分析
2018/04/27 Python
python中使用psutil查看内存占用的情况
2018/06/11 Python
python装饰器相当于函数的调用方式
2019/12/27 Python
python求一个字符串的所有排列的实现方法
2020/02/04 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
火锅店创业计划书范文
2014/02/02 职场文书
大学竞选班长演讲稿
2014/04/24 职场文书
六年级学生期末评语
2014/12/26 职场文书
幼儿园个人总结
2015/02/28 职场文书
特此通知格式
2015/04/27 职场文书
校园开放日新闻稿
2015/07/17 职场文书
民政局2016年“六一”儿童节慰问活动总结
2016/04/06 职场文书
python正则表达式re.search()的基本使用教程
2021/05/21 Python