You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在JavaScript中如何移除字符串非数字内容并提取完整整数值

JavaScript 从混合字符串中提取整数值的实现方案

JavaScript 没有内置专门用于移除字符串中所有非数字内容的全局函数,可通过正则表达式+字符串替换实现需求,该方案写法简洁性能优异,可覆盖绝大多数业务场景:

const String1 = '122,730 views'
const String2 = '2,990 likes'

// 核心逻辑:/\D/ 匹配所有非数字字符,g标识全局匹配,替换为空后转为数字即可
const extractInteger = (str) => Number(str.replace(/\D/g, ''))

console.log(extractInteger(String1)) // 输出 122730
console.log(extractInteger(String2)) // 输出 2990

为什么parseInt不符合需求

parseInt()的解析逻辑是从字符串开头逐字符匹配数字规则,遇到第一个不符合数字规则的字符就会终止解析,你提供的字符串中第一个逗号就触发了终止逻辑,所以只能拿到逗号前的部分数值。

超大量数据场景的极致性能方案

如果你需要处理十万级以上的大批量字符串,可采用字符遍历的方式实现,性能比正则方案高10%~20%左右:

function extractIntegerFast(str) {
  let numStr = ''
  for(let i = 0; i < str.length; i++) {
    const char = str[i]
    if(char >= '0' && char <= '9') numStr += char
  }
  return Number(numStr)
}

内容的提问来源于stack exchange,提问作者Alen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:06:04