提问者:小点点

检查输入字符串是否包含(有符号的)数字[重复的]


我想检查我的输入字符串是否包含数字,并显示这些数字的数组。数字由可选符号(-)、一个或多个连续数字和可选小数部分组成。小数部分由一个点组成。后面跟着零或更多位数。

例如f2('a1 1213.b-14.5 2'):返回[1, 12, 13, -14.5, 2]

我从这里的一个响应中尝试这段代码

function f2(input) {
  let str = String(input);

  for (let i = 0; i < str.length; i++) {
    console.log(str.charAt(i));

    if (!isNaN(str.charAt(i))) {
      //if the string is a number, do the following                
      return str.charAt(i);
    }
  }
}

let result = f2("a1 12 13.b -14.5+2");

console.log(result);

共1个答案

匿名用户

您可以轻松使用正则表达式匹配字符串中的数字:

function f2(input) {
      let str = String(input);
      let result = str.match(/\-?\d+\.\d+|\-?\d+/g)
      return result
    }
    
    let result = f2("a1 12 13.b -14.5+2");
    
    console.log(result);