关于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 图片缩放(按比例)控制代码
May 27 Javascript
javascript:window.open弹出窗口的位置问题
Mar 18 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
May 18 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
May 19 Javascript
很棒的js Tab选项卡切换效果
Aug 30 Javascript
AngularJS中的DOM操作用法分析
Nov 04 Javascript
AngularJS全局scope与Isolate scope通信用法示例
Nov 22 Javascript
js实现一个可以兼容PC端和移动端的div拖动效果实例
Dec 09 Javascript
Angularjs中使用layDate日期控件示例
Jan 11 Javascript
微信小程序 下拉菜单简单实例
Apr 13 Javascript
jQuery实现简单的回到顶部totop功能示例
Oct 16 jQuery
vue使用better-scroll实现下拉刷新、上拉加载
Nov 23 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
ThinkPHP Mobile使用方法简明教程
2014/06/18 PHP
PHP使用mkdir创建多级目录的方法
2015/12/22 PHP
PHP以json或xml格式返回请求数据的方法
2018/05/31 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
2020/03/23 PHP
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
基于jquery的获取mouse坐标插件的实现代码
2010/04/01 Javascript
javascript使用activex控件的代码
2011/01/27 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
2013/09/02 Javascript
javascript获取当前的时间戳的方法汇总
2015/07/26 Javascript
js实现点击获取验证码倒计时效果
2021/01/28 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
2016/10/14 Javascript
jquery中用函数来设置css样式
2016/12/22 Javascript
JS中使用正则表达式g模式和非g模式的区别
2017/04/01 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
2017/05/02 Javascript
js移动端事件基础及常用事件库详解
2017/08/15 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
详解vue-cli 接口代理配置
2017/12/13 Javascript
JS对象和字符串之间互换操作实例分析
2019/02/02 Javascript
Vue.extend 编程式插入组件的实现
2019/11/18 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
2020/07/27 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
[10:24]郎朗助力完美“圣”典,天籁交织奏响序曲
2016/12/18 DOTA
[50:02]完美世界DOTA2联赛循环赛 Magma vs IO BO2第一场 11.01
2020/11/02 DOTA
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
利用python求积分的实例
2019/07/03 Python
Django中使用极验Geetest滑动验证码过程解析
2019/07/31 Python
python 生成器需注意的小问题
2020/09/29 Python
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
英国老牌潮鞋店:Offspring
2019/08/19 全球购物
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
《学会待客》教学反思
2014/02/22 职场文书
2014年质量管理工作总结
2014/12/01 职场文书
灵魂歌王观后感
2015/06/17 职场文书
Python anaconda安装库命令详解
2021/10/16 Python