关于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 相关文章推荐
测试你的JS的掌握程度的代码
Dec 09 Javascript
javascript function调用时的参数检测常用办法
Feb 26 Javascript
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
Apr 18 Javascript
js获得地址栏?问号后参数的方法
Aug 08 Javascript
js获得页面的高度和宽度的方法
Feb 23 Javascript
JS不能跨域借助jquery获取IP地址的方法
Aug 20 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
Aug 30 Javascript
值得收藏的vuejs安装教程
Nov 21 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
Mar 29 Javascript
Node.js HTTP服务器中的文件、图片上传的方法
Sep 23 Javascript
jquery 键盘事件 keypress() keydown() keyup()用法总结
Oct 23 jQuery
6种JavaScript继承方式及优缺点(小结)
Feb 06 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扩展模块Pecl、Pear以及Perl的区别
2014/04/09 PHP
将FCKeditor导入PHP+SMARTY的实现方法
2015/01/15 PHP
laravel学习教程之存取器
2016/07/30 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
2017/06/06 PHP
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
2012/05/11 Javascript
Javascript弹出窗口的各种方法总结
2013/11/11 Javascript
jquery给图片添加鼠标经过时的边框效果
2013/11/12 Javascript
javascript实现密码强度显示
2015/03/18 Javascript
webpack+vue.js快速入门教程
2016/10/12 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
Bootstrap基本插件学习笔记之轮播幻灯片(23)
2016/12/08 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
Vuex之理解Getters的用法实例
2017/04/19 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
jQuery实现checkbox全选功能完整实例
2018/07/12 jQuery
新版小程序登录授权的方法
2018/12/12 Javascript
Node.js assert断言原理与用法分析
2019/01/04 Javascript
[49:20]2014 DOTA2国际邀请赛中国区预选赛5.21 CIS VS TongFu
2014/05/22 DOTA
详解Python的Django框架中的通用视图
2015/05/04 Python
Python中的rjust()方法使用详解
2015/05/19 Python
利用 Monkey 命令操作屏幕快速滑动
2016/12/07 Python
python2.7 mayavi 安装图文教程(推荐)
2017/06/22 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
2018/05/04 Python
python使用webdriver爬取微信公众号
2018/08/31 Python
Python中psutil的介绍与用法
2019/05/02 Python
python中property和setter装饰器用法
2019/12/19 Python
python 获取当前目录下的文件目录和文件名实例代码详解
2020/03/10 Python
使用Django xadmin 实现修改时间选择器为不可输入状态
2020/03/30 Python
Python faker生成器生成虚拟数据代码实例
2020/07/20 Python
详解Anaconda 的安装教程
2020/09/23 Python
澳大利亚领先的优质葡萄酒拍卖会:Langton’s Fine Wines
2019/03/24 全球购物
标记环网Toke Ring IEEE802.5
2014/05/26 面试题
40岁生日感言
2014/02/15 职场文书
绩效考核实施方案
2014/03/18 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书