关于javascript中的parseInt使用技巧


Posted in Javascript onSeptember 03, 2009

要对表单中填写的日期格式进行客户端验证,于是在网上找了段代码,其中用到parseInt对年月日做判断,其中有类似这样的语句:

......

else if(parseInt(month)<1 || parseInt(month) >12)

......

可是对于当前本来正确的日期,这里怎么也通不过。后来一查才明白,parseInt实际上有两个参数,第一个是要转换的值,第二个是指定的进制。如果不指定第二个参数,那么它只能正确地转换01到07(即把它们转换成1到7),从08开始,它就会按照“0开头的是八进制数”的规则转换了!正好现在是9月,我随手选的日期,正好暴露了这个问题,我要是在上半年做这个,还真是将留下一个BUG,然后等到下半年客户才告诉我日期无法填写了。

于是,将函数中所有用到parseInt的地方,都加上了第二个参数,指明是十进制。比如上面那句,改成:

......

else if(parseInt(month,10)<1 || parseInt(month,10) >12)

......

前面好几次遇到JavaScript中parseInt函数把字串转为数字,前面遇到过几次问题,然后就换其它方法进行比较。
当我去页面取得一个日历的东西,然后进行转换成数字进行比较 的时候,月份转换老是出现问题,
当我用

var num = parseInt(01);
var num = parseInt(01);
...
var num = parseInt(07);
var num = parseInt(08);
var num = parseInt(09);
var num = parseInt(10);

假如当我进行如上转换的时候,
parseInt(),传进去的参数从1到7都没有问题,可是当我用parseInt(08)的时候就出问题,转换出来的num=0

当时因为项目的紧急的原因,也没有细细的去追究
现在有空了看了一下parseInt这个javascript方法

javascript 的api的说明如下:
parseInt 方法
返回由字符串转换得到的整数。
parseInt(numString, [radix])
参数
numString
必选项。要转换为数字的字符串。
radix
可选项。在 2 和 36 之间的表示 numString 所保存数字的进制的值。如果没有提供,则前缀为 '0x' 的字符串被当作十六进制,前缀为 '0' 的字符串被当作八进制。所有其它字符串都被当作是十进制的。

看了如上的api知道了,原来我转进去的参数为01到08时,参数以'0'开头,所以转换成了八进制。又因为八进制是只能表示0到7所以,当我参数为01到07时转换正确,当为08时就进位了,转换为0.而parseInt(10)又能正解转换为10

所以规矩的做法是不要省略最后一个参数,

用parseInt(08,10);就能转换正确了

Javascript 相关文章推荐
JavaScript 原型继承
Dec 26 Javascript
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
Apr 07 Javascript
jquery检测input checked 控件是否被选中的方法
Mar 26 Javascript
浅谈JS闭包中的循环绑定处理程序
Nov 09 Javascript
jQuery中removeData()方法用法实例
Dec 27 Javascript
javascript时间差插件分享
Jul 18 Javascript
基于jQuery实现淡入淡出效果轮播图
Jul 31 Javascript
微信小程序之拖拽排序(代码分享)
Jan 21 Javascript
JS设计模式之单例模式(一)
Sep 29 Javascript
JavaScript实现简单音乐播放器
Apr 17 Javascript
JavaScript对象拷贝与赋值操作实例分析
Dec 10 Javascript
7个你应该知道的JS原生错误类型
Apr 29 Javascript
jquery判断单个复选框是否被选中的代码
Sep 03 #Javascript
javascript 触发事件列表 比较不错
Sep 03 #Javascript
javascript concat数组累加 示例
Sep 03 #Javascript
ie focus bug 解决方法
Sep 03 #Javascript
javascript 24小时弹出一次的代码(利用cookies)
Sep 03 #Javascript
使用jQuery的ajax功能实现的RSS Reader 代码
Sep 03 #Javascript
一步一步教你写一个jQuery的插件教程(Plugin)
Sep 03 #Javascript
You might like
PHP中HTTP方式下的Gzip压缩传输方法举偶
2007/02/15 PHP
解析PHP跨站刷票的实现代码
2013/06/18 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
2014/06/10 PHP
PHP中feof()函数实例测试
2014/08/23 PHP
浅谈php7的重大新特性
2015/10/23 PHP
PHP MYSQL实现登陆和模糊查询两大功能
2016/02/05 PHP
php socket通信简单实现
2016/11/18 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
Yii2框架redis基本应用示例
2018/07/13 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
2018/08/15 PHP
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
2011/09/09 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
2012/12/12 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
2013/08/06 Javascript
javascript验证身份证完全方法具体实现
2013/11/18 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
jQuery在header中设置请求信息的方法
2017/03/06 Javascript
react中的ajax封装实例详解
2017/10/17 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
利用vue.js把静态json绑定bootstrap的table方法
2018/08/28 Javascript
vue-router的钩子函数用法实例分析
2019/10/26 Javascript
js实现单元格拖拽效果
2020/02/10 Javascript
数据挖掘之Apriori算法详解和Python实现代码分享
2014/11/07 Python
一步步解析Python斗牛游戏的概率
2016/02/12 Python
详解Python用户登录接口的方法
2019/04/17 Python
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
应届生法律顾问求职信
2013/11/19 职场文书
关于毕业的广播稿
2014/01/10 职场文书
违反校纪校规检讨书
2014/02/15 职场文书
经典婚礼主持词
2014/03/13 职场文书
导游个人求职信
2014/04/25 职场文书
纪律教育学习月活动总结
2014/08/27 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
党员群众路线学习心得体会
2014/11/04 职场文书
三国演义读书笔记
2015/06/25 职场文书
Java实现二维数组和稀疏数组之间的转换
2021/06/27 Java/Android
Python+Tkinter制作专属图形化界面
2022/04/01 Python