这就是问题所在。
写一个函数parseFirstInt 接收一个字符串 并返回字符串中的第一个整数。parseFirstInt('No. 10')应该返回10,parseFirstInt('Babylon')应该返回NaN。
我用parseFloat和parseInt解决不了问题。
我的代码在这里。
parseFirstInt = function(str){
var a = str.replace(/[^0-9]/g, "");
var b = parseFloat(a);
return b;
}
//parseFirstInt('No. 10') return 10
//BUT parseFirstInt('18.12') return 1812
你可以使用regx (\d)+g来获得数字。请看下面的代码
var str = "No.10";alert(Number(str.match((\d)+g)[0]))。
希望对大家有所帮助。
function parseFirstInt(str){
const reg = RegExp(/\d+/g);
let arr = reg.exec(str);
if(arr == null){
return NaN;
}
return arr[0];
}
var res = parseFirstInt("India9Delhi78Asia67");
console.log(res); // 9