一 parseInt()方法:
首先想到的是js提供的parseInt方法,例子:
var str ="4500元"; var num = parseInt(str); alert(num);//4500
以为就这么简单,那就错了。如果字符串前面有非数字字符,上面这种方法就不行了:
var str ="价格:4500元"; var num = parseInt(str); alert(num);//NaN
解决这个问题,最简单的方法是:知道字符串格式后,去掉前面的非字符,上面这个例子中,渠道“价格:”
var str ="价格:4500元"; var num = parseInt(str.substring(1).substring(1).substring(1)); alert(num);//4500
显然,这样就显得比较麻烦了。另外,java语言中也有parseInt()方法,里面传的字符串中只要有非数字,myeclipse就会提示错误。Js中的parseInt()方法传的可以有非数字字符串,只要字符串前面就照样运行,知道遇到非数字字符停下来。比如,以下这个例子。
var str ="4500元,等级:2"; var num = parseInt(str); alert(num);//4500
不会报错,结果还是一样,因为系统查找到“元”时就停止了,后面有没有数字都不会再提取了。所以不会出现45002的结果。Js中有很多这样的例子,比如正则不写/g,默认查找符合的第一个子字符串就跳出,并不会往下面进行。
二正则
正则处理起来就比较简单了,替换掉非数字的字符就可以了。例子:
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
这个时候结果就是45002了。
时间: 2024-12-16 11:59:50