【问题标题】:String method of array数组的字符串方法
【发布时间】:2021-04-08 12:54:19
【问题描述】:

我应该写一个函数,它应该接受一个带有不同符号的字符串,并从传递的参数中返回一串数字,没有正则表达式 我该怎么做?

【问题讨论】:

  • 您想提取给定字符串的所有数字,是这样吗?
  • 为什么不使用正则表达式?
  • 你的输入和预期输出是什么?
  • "... 并返回一串数字" 什么数字?我们是在谈论传递的字符串中的数字,还是 charCodes,还是什么?
  • 例如 makeNumber('erer384jjjfd123'); //=>'384123' makeNumber('123098h76gfdd'); //=>'12309876' makeNumber('ijifjgdj'); //=> 应该返回空字符串 ->''

标签: javascript arrays string numbers


【解决方案1】:

这是你需要的吗?

let str = 'asd6sd4573casxc'


function getNumbers(string) {
    let numbers = [];
    for (let i = 0; i < string.length; i++) {
       if (!isNaN(string[i])){
           numbers.push(string[i])
       }
    }
    return numbers.join('');
}

console.log(getNumbers(str))

【讨论】:

  • 是的,非常感谢
  • @Thomas 没必要,我打错了 :)
【解决方案2】:

您可以通过遍历字符串中的字符并通过检测字符代码是否在[48, 57] 的范围内来构建数字列表来提取数字。

console.json = json => console.log(JSON.stringify(json)); // Convenience

const extractNumbers = (str, auto = false) => {
  const result = [];
  let number = '';
  str.split('').forEach(ch => {
    const code = ch.charCodeAt(0);
    if (code >= 48 && code <= 57) {
      number += ch;
    } else {
      if (number) {
        result.push(auto ? parseInt(number, 10) : number);
        number = '';
      }
    }
  });
  return result;
};

console.json(extractNumbers('HE110 W02LD'));          // ["110","02"]
console.json(extractNumbers('HE110 W02LD', true));    // [110,2]
console.json(extractNumbers('HE110 W02LD').join('')); // "11002"

【讨论】:

    【解决方案3】:

    不确定我是否清楚地理解了这里的问题,但我假设您的输入字符串可能如下所示:

    Wh3r3 i5 n3m0?

    你想提取一种子字符串,它只包含输入字符串中的数字:

    33530

    并且由于某些原因您不想使用正则表达式...所以您可以尝试以下方法:

    function getOnlyNumbersSubstrig(inputString) {
      return inputString.split('')
        .filter(char => char !== ' ')
        .reduce((outputString, currentChar) => {
          if (!isNaN(Number(currentChar))) {
            outputString += currentChar;
          }
          
          return outputString;
        }, '')
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-09
      • 2021-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多