题目描述
修改 js 代码中 parseInt 的调用方式,使之通过全部测试用例
示例1
输入’12’
输出12
示例2
输入’12px’
输出12
示例3
输入’0x12’
输出0
错误代码
function parse2Int(num) {
return parseInt(num);
}
parselnt
parseInt(string, radix)
- parseInt() 函数可解析一个字符串,并返回一个整数。
- 当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。
按10进制去处理字符串,碰到非数字字符,会将后面的全部无视
思路一:10进制可忽略字符
按10进制去处理字符串,碰到非数字字符,会将后面的全部无视
function parse2Int(num) {
return parseInt(num, 10);
}
思路二:正则表达式分离前面的数字
对于无效的数字,可以直接忽略,所以用正则表达式将首次匹配到的数字组合进行整数转换。
function parse2Int(num) {
var re = /^\d+/;
num = re.exec(num)[0];
return parseInt(num);
}
思路三:用字符码判断不合规定的数字
function parse2Int(num) {
for(var i = 0; i < num.length; i++){
if(num[i] < '0' || num[i] > '9'){
num = num.slice(0,i);
break;
}
}
return parseInt(num);
}