关于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 trim去空格的最佳实践
Oct 30 Javascript
js批量设置样式的三种方法不推荐使用with
Feb 25 Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
Jul 27 Javascript
深入分析node.js的异步API和其局限性
Sep 05 Javascript
bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
Feb 17 Javascript
微信小程序如何获知用户运行小程序的场景教程
May 17 Javascript
详解Node.js开发中的express-session
May 19 Javascript
jQuery实现动态给table赋值的方法示例
Jul 04 jQuery
详解关于Angular4 ng-zorro使用过程中遇到的问题
Dec 05 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
Apr 29 Javascript
js实现轮播图效果 z-index实现轮播图
Jan 17 Javascript
Vue.js实现立体计算器
Feb 22 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 正则匹配函数体
2009/08/25 PHP
coreseek 搜索英文的问题详解
2013/06/08 PHP
php实现的Cookies操作类实例
2014/09/24 PHP
php中使用sftp教程
2015/03/30 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
2015/12/28 PHP
Laravel框架实现超简单的分页效果示例
2019/02/08 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
Alliance vs AM BO3 第一场2.13
2021/03/10 DOTA
javascript 不间断的图片滚动并可点击
2010/01/15 Javascript
JS获取各种浏览器窗口大小的方法
2014/01/14 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
2015/09/06 Javascript
基于JavaScript代码实现pc与手机之间的跳转
2015/12/23 Javascript
Bootstrap自定义文件上传下载样式
2016/05/26 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
2017/07/18 Javascript
react中使用swiper的具体方法
2018/05/15 Javascript
详解Eslint 配置及规则说明
2018/09/10 Javascript
解决layer.prompt无效的问题
2019/09/24 Javascript
JavaScript适配器模式原理与用法实例详解
2020/03/09 Javascript
简介Django框架中可使用的各类缓存
2015/07/23 Python
Python爬取网易云音乐热门评论
2017/03/31 Python
Python通过命令开启http.server服务器的方法
2017/11/04 Python
Python中super函数的用法
2017/11/17 Python
python使用for循环计算0-100的整数的和方法
2019/02/01 Python
python3 实现的对象与json相互转换操作示例
2019/08/17 Python
Python读取表格类型文件代码实例
2020/02/17 Python
python和js交互调用的方法
2020/06/23 Python
通过实例了解python__slots__使用方法
2020/09/14 Python
css3实现画半圆弧线的示例代码
2017/11/06 HTML / CSS
html5+css3进度条倒计时动画特效代码【推荐】
2016/03/08 HTML / CSS
乡文化站暑期培训方案
2014/08/28 职场文书
人身损害赔偿协议书范本
2014/09/27 职场文书
学风建设主题班会
2015/08/17 职场文书
丧事答谢词大全
2015/09/30 职场文书
观看《信仰》心得体会
2016/01/15 职场文书
Redis分布式锁Redlock的实现
2021/08/07 Redis