从字符串返回数字的函数,如果长度 >= 4

Function to return digits from a string, if length >= 4

提问人:unstuck 提问时间:8/9/2022 最后编辑:unstuck 更新时间:8/9/2022 访问量:39

问:

此函数正在检索字符串的最后数字:

function getLastNumberOfString(str){
  var allNumbers = str.replace(/[^0-9]/g, ' ').trim().split(/\s+/);
  return parseInt(allNumbers[allNumbers.length - 1], 10);
}

我希望它检索字符串的最后一位数字,如果它至少包含 4 位数字。

例如:

"1234-string-text/8177-1-3-tools-for-knowledge.html"

正在返回:

3

我希望它返回:

8177
JavaScript 正则表达式

评论

0赞 Andy 8/9/2022
字符串是否总是具有该格式:,然后是您想要的四个数字?/
0赞 unstuck 8/9/2022
不,它可能不同

答:

3赞 anubhava 8/9/2022 #1

要匹配包含至少 4 位数字的最后一组数字,请使用:

\d{4,}(?!.+\d{4})

正则表达式演示

正则表达式详细信息:

  • \d{4,}:匹配 4 位或更多数字
  • (?!.+\d{4}):否定 Lookahead 断言前面没有其他 4 位数字出现

法典:

function getLastNumberOfString(str){
  var m = str.match(/\d{4,}(?!.+\d{4})/);
  return (m ? parseInt(m[0]) : NaN);
}

console.log(getLastNumberOfString("1234-string-text/8177-1-3-tools-for-knowledge.html"));

console.log(getLastNumberOfString("tools-for-knowledge.html"));