【问题标题】:how to get the first numeric sequence in a string? [duplicate]如何获取字符串中的第一个数字序列? [复制]
【发布时间】:2021-05-18 02:02:01
【问题描述】:

输入变量的字符集中包含一个或多个数字字符串,大小不固定,字母和数字之间可以有空格。在这两种情况下,我只需要识别出现在字符串中的第一个数字序列(它永远不会被空格分隔)。输入字符串的一些示例:

"a12bcde097fg"  >> return 12
"120abc198672f" >> return 120
"a052bcd123fg"  >> return 052
"a 52 - bcd12"  >> return 52
"A b 123 cd 1"  >> return 123

有没有办法用一个命令来做到这一点并且在所有情况下都有效?

【问题讨论】:

  • 基本reg表达式
  • edit您的问题表明您所做的研究以及您为自己解决问题所做的任何尝试。
  • 与此同时,一些好心人会发布答案,因为这是一项简单的任务,他们可以炫耀自己的实力。他们的答案不符合 Stack Overflow 的使命,即创建一个包含高质量问题和答案的知识库。

标签: javascript


【解决方案1】:

你只能匹配没有全局标志的数字。

const 
    getFirstDigits = string => string.match(/\d+/)?.[0] || '',
    array = ["a12bcde097fg", "120abc198672f", "a052bcd123fg", "a 52 - bcd12", "A b 123 cd 1", "a"],
    result = array.map(getFirstDigits);

console.log(result);

【讨论】:

    【解决方案2】:
    const s = "a12bcde097fg";
    const r = /(\d+)/.exec(s);
    if (r[0]) {
        console.log(r[0]); 
    }
    

    【讨论】:

      猜你喜欢
      • 2018-08-05
      • 2011-10-29
      • 2011-03-26
      • 1970-01-01
      • 1970-01-01
      • 2015-07-02
      • 1970-01-01
      相关资源
      最近更新 更多