js 字符串转化成数字的代码


Posted in Javascript onJune 29, 2011

方法主要有三种
转换函数、强制类型转换、利用js变量弱类型转换。
1. 转换函数:
js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。

一些示例如下:
parseInt("1234blue"); //returns 1234
parseInt("0xA"); //returns 10
parseInt("22.5"); //returns 22
parseInt("blue"); //returns NaN

parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的,示例如下:
parseInt("AF", 16); //returns 175
parseInt("10", 2); //returns 2
parseInt("10", 8); //returns 8
parseInt("10", 10); //returns 10
如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地得到八进制的值。例如:
parseInt("010"); //returns 8
parseInt("010", 8); //returns 8
parseInt("010", 10); //returns 10

parseFloat()方法与parseInt()方法的处理方式相似。
使用parseFloat()方法的另一不同之处在于,字符串必须以十进制形式表示浮点数,parseFloat()没有基模式。
下面是使用parseFloat()方法的示例:
parseFloat("1234blue"); //returns 1234.0
parseFloat("0xA"); //returns NaN
parseFloat("22.5"); //returns 22.5
parseFloat("22.34.5"); //returns 22.34
parseFloat("0908"); //returns 908
parseFloat("blue"); //returns NaN
2. 强制类型转换
还可使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。
ECMAScript中可用的3种强制类型转换如下:
Boolean(value)——把给定的值转换成Boolean型;
Number(value)——把给定的值转换成数字(可以是整数或浮点数);
String(value)——把给定的值转换成字符串。
用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。
当要转换的值是至少有一个字符的字符串、非0数字或对象(下一节将讨论这一点)时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。
可以用下面的代码段测试Boolean型的强制类型转换。
Boolean(""); //false ? empty string
Boolean("hi"); //true ? non-empty string
Boolean(100); //true ? non-zero number
Boolean(null); //false - null
Boolean(0); //false - zero
Boolean(new Object()); //true ? object
Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。示例如下:

法 结


Number(false) 0
Number(true) 1
Number(undefined) NaN
Number(null) 0
Number( "5.5 ") 5.5
Number( "56 ") 56
Number( "5.6.7 ") NaN
Number(new Object()) NaN
Number(100) 100
最后一种强制类型转换方法String()是最简单的,示例如下:
var s1 = String(null); //"null"
var oNull = null;
var s2 = oNull.toString(); //won't work, causes an error
3. 利用js变量弱类型转换
举个小例子,一看,就会明白了。
<script>
var str= '012.345 ';
var x = str-0;
x = x*1;
</script>
上例利用了js的弱类型的特点,只进行了算术运算,实现了字符串到数字的类型转换,不过这个方法还是不推荐的

Javascript 相关文章推荐
javascript hashtable 修正版 下载
Dec 30 Javascript
JS操作select下拉框动态变动(创建/删除/获取)
Jun 02 Javascript
jQuery之尺寸调整组件的深入解析
Jun 19 Javascript
JQuery对id中含有特殊字符的转义处理示例
Sep 06 Javascript
用Jquery选择器计算table中的某一列某一行的合计
Aug 13 Javascript
javascript实现网页端解压并查看zip文件
Dec 15 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
Oct 15 Javascript
关于Bootstrap按钮组件消除黄框的方法
May 19 Javascript
官方推荐react-navigation的具体使用详解
May 08 Javascript
vuedraggable+element ui实现页面控件拖拽排序效果
Jul 29 Javascript
vue实现微信二次分享以及自定义分享的示例
Mar 20 Javascript
微信小程序中转义字符的处理方法
Mar 28 Javascript
js的一些常用方法小结
Jun 29 #Javascript
JavaScript下通过的XMLHttpRequest发送请求的代码
Jun 28 #Javascript
Extjs TimeField 显示正常时间格式的代码
Jun 28 #Javascript
javascript复制对象使用说明
Jun 28 #Javascript
javascript 45种缓动效果 非常酷
Jun 28 #Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
Jun 28 #Javascript
关于js类的定义
Jun 28 #Javascript
You might like
支持oicq头像的留言簿(二)
2006/10/09 PHP
解析php中反射的应用
2013/06/18 PHP
护卫神php套件 php版本升级方法(php5.5.24)
2015/05/10 PHP
Zend Framework入门教程之Zend_Config组件用法详解
2016/12/09 PHP
php判断IP地址是否在多个IP段内
2020/08/18 PHP
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
2011/04/07 Javascript
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
2012/02/27 Javascript
Js 时间函数getYear()的使用问题探讨
2013/04/01 Javascript
JS OffsetParent属性深入解析
2014/01/13 Javascript
Nodejs如何搭建Web服务器
2016/03/28 NodeJs
5个最顶级jQuery图表类库插件【jquery插件库】
2016/05/05 Javascript
AngularJS  $on、$emit和$broadcast的使用
2016/09/05 Javascript
javascript 中的事件委托详解
2016/10/25 Javascript
js数组操作方法总结(必看篇)
2016/11/22 Javascript
Mac下使用charles遇到的问题以及解决办法
2017/01/10 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
jQuery简单判断值是否存在于数组中的方法示例
2018/04/17 jQuery
使用Javascript简单计算器
2018/11/17 Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
2018/11/30 Javascript
Vue 实现手动刷新组件的方法
2019/02/19 Javascript
[09:13]DOTA2-DPC中国联赛 正赛 Ehome vs Magma 选手采访 1月19日
2021/03/11 DOTA
python self,cls,decorator的理解
2009/07/13 Python
django+xadmin+djcelery实现后台管理定时任务
2018/08/14 Python
解决python 未发现数据源名称并且未指定默认驱动程序的问题
2018/12/07 Python
PyQt5根据控件Id获取控件对象的方法
2019/06/25 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
2019/08/17 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
2020/03/25 Python
CNC数控操作工岗位职责
2013/11/19 职场文书
学生思想表现的评语
2014/01/30 职场文书
国企干部对照检查材料
2014/08/22 职场文书
2015年社区流动人口工作总结
2015/05/12 职场文书
如何写通讯稿
2015/07/22 职场文书
2016年妇联“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
2021/03/29 PHP
Nginx+SpringBoot实现负载均衡的示例
2021/03/31 Servers
python的html标准库
2022/04/29 Python