关于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中的数学函数集合
May 08 Javascript
Prototype String对象 学习
Jul 19 Javascript
火狐4、谷歌12不支持Jquery Validator的解决方法分享
Jun 20 Javascript
JavaScript使用function定义对象并调用的方法
Mar 23 Javascript
AngularJs bootstrap搭载前台框架——基础页面
Sep 01 Javascript
js实现动态显示时间效果
Mar 06 Javascript
Angularjs处理页面闪烁的解决方法
Mar 09 Javascript
Web制作验证码功能实例代码
Jun 19 Javascript
如何通过setTimeout理解JS运行机制详解
Mar 23 Javascript
vue项目从node8.x升级到12.x后的问题解决
Oct 25 Javascript
jQuery 实现扁平式小清新导航
Jul 07 jQuery
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网站在线人数统计
2008/04/09 PHP
解决file_get_contents无法请求https连接的方法
2013/12/17 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
PHP join()函数用法与实例讲解
2019/03/11 PHP
javascript下查找父节点的简单方法
2007/08/13 Javascript
JavaScript学习笔记(十七)js 优化
2010/02/04 Javascript
js实现双向链表互联网机顶盒实战应用实现
2011/10/28 Javascript
js保留小数点后几位的写法
2014/01/03 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
可输入文字查找ajax下拉框控件 ComBox的实现方法
2016/10/25 Javascript
bootstrap监听滚动实现头部跟随滚动
2016/11/08 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
2016/12/17 Javascript
js生成随机数方法和实例
2017/01/17 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
2018/01/24 Javascript
vue二级路由设置方法
2018/02/09 Javascript
jQuery中$原理实例分析
2018/08/13 jQuery
手动下载Chrome并解决puppeteer无法使用问题
2018/11/12 Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
2018/11/30 Javascript
node事件循环和process模块实例分析
2020/02/14 Javascript
[02:51]2014DOTA2国际邀请赛 IG战队官方纪录片
2014/07/21 DOTA
[04:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster 选手采访
2021/03/11 DOTA
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
Python爬虫包BeautifulSoup实例(三)
2018/06/17 Python
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
宝拉珍选美国官网:Paula’s Choice美国
2018/01/07 全球购物
澳大利亚排名第一的露营和户外设备在线零售商:Outbax
2020/05/06 全球购物
房地产出纳岗位职责
2013/12/01 职场文书
2014春晚主持词
2014/03/25 职场文书
网站客服岗位职责
2014/04/05 职场文书
责任书格式
2015/01/29 职场文书
社会实践活动总结格式
2015/05/11 职场文书
mysql left join快速转inner join的过程
2021/06/30 MySQL
python字符串的一些常见实用操作
2022/04/06 Python