网站首页 > java教程 正文
var str ="4500元";
var num = parseInt(str);
alert(num);//4500
如果字符串前面有非数字字符,上面这种方法就不行了:
var str ="价格:4500元";
var num = parseInt(str);
alert(num);//NaN
这个例子中会弹出 NaN,解决这个问题,最简单的方法是:如果知道字符串格式后,去掉前面的非字符。上面这个例子中,去掉子串” 价格:”
var str ="价格:4500元";
var num = parseInt(str.substring(1).substring(1).substring(1));
or
var num = parseInt(str.slice(3));
alert(num);//4500
显然,这样就显得比较麻烦了。另外,java 语言中也有 parseInt() 方法,里面传的字符串中只要有非数字,myeclipse 就会提示错误。Js 中的 parseInt() 方法传的可以有非数字字符串,只要字符串前面就照样运行,知道遇到非数字字符停下来。比如,以下这个例子。
var str ="4500元,等级:2";
var num = parseInt(str);
alert(num);//4500
关于 parseInt() 方法,还可以有第二个参数。第二个参数表示第一个参数的进制,看个例子:
parseInt("11", 2); // 结果:3 如果想把一个二进制数字字符串转换成整数值,只要把第二个参数设置为 2 就可以了。
后一个参数不写,默认按 10 进制转换。
问:parse 函数是干嘛的?
进程之间传递的都是字符串(文本类型),而使用时要转换成需要的类型。parse 函数是把字符串转换成我们需要的类型,比如 parseInt(),$.parseHTML()。
方法二 正则
正则处理起来就比较简单了,替换掉非数字的字符就可以了。例子:
var s ="价格4500元";
var num= s.replace(/[^0-9]/ig,"");
alert(num);//4500
如果遇到字符夹带数字的情况:
var s ="价格4500元,等级:2";
var num = s.replace(/[^0-9]/ig,"");
alert(num);//45002
var num2 = s.match(/[0-9]+/i,'');
alert(num2)//4500
- 上一篇: Java随机生成数字+字母组合的字符串
- 下一篇: Java中如何将字符串转换为的int?
猜你喜欢
- 2024-11-27 零基础学习JAVA-05.字符串
- 2024-11-27 【Java编程】String类的创建和操作
- 2024-11-27 Java源码系列-Integer源码
- 2024-11-27 JAVA技术分享:单号的生成
- 2024-11-27 LeetCode每日一题,最长回文子串
- 2024-11-27 java-常用加解密算法-Base64和UrlBase64
- 2024-11-27 你不可不会的几种移动零的方法
- 2024-11-27 LeetCode每日一题,整数转罗马数字
- 2024-11-27 JAVA进阶知识练习题(下)
- 2024-11-27 「教3妹学算法-每日3题(1)」字符串中第二大的数字
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)