关于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 更新 JavaScript 数组的 uniq 方法
Jan 23 Javascript
纯文字版返回顶端的js代码
Aug 01 Javascript
js上传图片及预览功能实例分析
Apr 24 Javascript
js+html5实现canvas绘制简单矩形的方法
Jun 05 Javascript
jQuery获取URL请求参数的方法
Jul 18 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
Jun 21 Javascript
JavaScript实现Fly Bird小游戏
Dec 15 Javascript
正则 js分转元带千分符号详解
Mar 08 Javascript
详解Webpack loader 之 file-loader
Nov 07 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
Dec 13 Javascript
Javascript迭代、递推、穷举、递归常用算法实例讲解
Feb 01 Javascript
javascript实现倒计时效果
Feb 17 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初学者头痛的十四个问题
2006/07/12 PHP
不用GD库生成当前时间的PNG格式图象的程序
2006/10/09 PHP
PHP中for循环语句的几种变型
2006/11/26 PHP
php格式输出文件var_export函数实例
2014/11/15 PHP
PHP四舍五入、取整、round函数使用示例
2015/02/06 PHP
PHP函数checkdnsrr用法详解(Windows平台用法)
2016/03/21 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
2016/12/12 PHP
PHP 出现 http500 错误的解决方法
2021/03/09 PHP
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
javascript操作数组详解
2014/12/17 Javascript
window.open()实现post传递参数
2015/03/12 Javascript
javaScript实现滚动新闻的方法
2015/07/30 Javascript
JavaScript中的闭包
2016/02/24 Javascript
微信小程序 实战小程序实例
2016/10/08 Javascript
支持移动端原生js轮播图
2017/02/16 Javascript
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
2018/01/08 jQuery
关于vue-router的那些事儿
2018/05/23 Javascript
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
详解js根据百度地图提供经纬度计算两点距离
2019/05/13 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
2017/06/07 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
2019/06/17 Python
Python企业编码生成系统之主程序模块设计详解
2019/07/26 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
2020/03/18 Python
keras实现VGG16 CIFAR10数据集方式
2020/07/07 Python
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
巴西最大的在线约会网站:ParPerfeito
2018/07/11 全球购物
幼儿教师自我鉴定
2013/11/02 职场文书
回门宴答谢词
2014/01/13 职场文书
物理学专业求职信
2014/07/04 职场文书
单位活动策划方案
2014/08/17 职场文书
社保代办委托书怎么写
2014/10/06 职场文书
乡镇防汛工作汇报
2014/10/28 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
店铺转让协议书
2015/01/29 职场文书