我正试图解决来自jshero.net的一个挑战。挑战是:
编写一个函数parseFirstInt,该函数接受一个字符串并返回字符串中的第一个整数。如果字符串不包含整数,则应该获得NaN。parseFirstInt(‘10')应该返回10,parseFirstInt(’巴比伦‘)应该返回NaN。我想出的解决办法是:
function parseFirstInt(num){
let input=parseInt();
if(Number.isNaN(num)){
return NaN} else {
return num[0]}
}但不起作用。它返回以下错误:
parseFirstInt(‘N 10')不返回10,但返回'N’。 测试错误!纠正错误并重新运行测试!
你们有什么解决问题的方法吗?
发布于 2020-06-23 11:58:03
发布于 2020-06-23 12:25:21
这应该是可行的:
function parseFirstInt(text){
for(let i=0;i<text.length;i++){
if(text.charCodeAt(i)<58 && text.charCodeAt(i)>47){
return text[i];
}
}
return NaN;
}发布于 2020-06-23 12:43:00
使用/[-+]?[0-9]+/g函数中的匹配(),您可以找到并解析字符串中的第一个整数。
function parseFirstInt(num){
const ints = num.match(/[-+]?[0-9]+/g)
return ints ? Number(ints[0]): NaN
}
console.log(parseFirstInt('No. 10'));
console.log(parseFirstInt('NaN'));
console.log(parseFirstInt('No. -10'));
https://stackoverflow.com/questions/62534106
复制相似问题