首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >返回字符串中的第一个整数。

返回字符串中的第一个整数。
EN

Stack Overflow用户
提问于 2020-06-23 11:55:29
回答 3查看 557关注 0票数 0

我正试图解决来自jshero.net的一个挑战。挑战是:

编写一个函数parseFirstInt,该函数接受一个字符串并返回字符串中的第一个整数。如果字符串不包含整数,则应该获得NaN。parseFirstInt(‘10')应该返回10,parseFirstInt(’巴比伦‘)应该返回NaN。我想出的解决办法是:

代码语言:javascript
运行
复制
function parseFirstInt(num){
let input=parseInt();
if(Number.isNaN(num)){
return NaN} else {
return num[0]}

}

但不起作用。它返回以下错误:

parseFirstInt(‘N 10')不返回10,但返回'N’。 测试错误!纠正错误并重新运行测试!

你们有什么解决问题的方法吗?

EN

回答 3

Stack Overflow用户

发布于 2020-06-23 11:58:03

我肯定会用regex来做这个。

使用此处所写的内容,以便将所有字符串替换为空

使用JavaScript获取字符串中的第一个整数

然后,我将检查长度是否为0。如果是返回NaN,则返回parseInt

票数 0
EN

Stack Overflow用户

发布于 2020-06-23 12:25:21

这应该是可行的:

代码语言:javascript
运行
复制
    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;
    }
票数 0
EN

Stack Overflow用户

发布于 2020-06-23 12:43:00

使用/[-+]?[0-9]+/g函数中的匹配(),您可以找到并解析字符串中的第一个整数。

代码语言:javascript
运行
复制
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'));

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62534106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档