1 parseInt()方法:
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));
alert(num);//4500
显然,这样就显得比较麻烦了。Js中的parseInt()方法传的可以有非数字字符串,只要字符串前面就照样运行,知道遇到非数字字符停下来。比如,以下这个例子。
var str ="4500元,等级:2";
var num = parseInt(str);
alert(num);//4500
2.正则
事实上,正则处理起来就比较简单了,替换掉非数字的字符就可以了。例子:
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