【面试题】JS使用parseInt()、正则截取字符串中数字
JS使用parseInt()和正则截取字符串中数字
parseInt() 函数
定义和用法
parseInt() 函数可解析一个字符串,并返回一个整数。
当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数
当忽略参数 radix , JavaScript 默认数字的基数如下:
- 如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。
- 如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。
- 如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。
parseFloat() 函数
定义和用法
parseFloat() 函数可解析一个字符串,并返回一个浮点数。
该函数指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,而不是作为字符串。
截取字符串中数字
1、使用parseInt()
let str = "4500元";
let num = parseInt(str);
alert(num); //4500
对,你没有看错,parseInt()方法参数可以有非数字字符串,只要数字在字符串前面就可以,遇到非数字字符停下来,返回前边的数字。
这种方式的缺点是不能提取数字在中间的字符串中的数字。
2、使用正则
let s = "价格4500元";
let num = s.replace(/[^0-9]/gi, "");
alert(num); //4500