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

统计字符串中数字数量的JS代码无法运行,该如何编写正确实现?

问题原因

现有代码的问题出在reduce回调中的判断逻辑错误:/\d/.test(char)本身返回的是布尔值true或false,代码中额外增加了char ===的全等判断,相当于拿单个字符串字符和布尔值做比较,结果永远为false,所以最终统计值一直是0,不符合预期。


修正方案1:直接调整原有reduce写法

const str = "192.168.5.0"
// 移除多余的char ===判断即可
const digits = [...str].reduce((a, char) => /\d/.test(char) ? ++a : a, 0);

console.log(digits); // 输出结果为8,符合预期

修正方案2:更简洁的match写法

直接用正则全局匹配所有数字字符,再统计长度即可,注意做空值兼容避免匹配不到数字时报错:

const str = "192.168.5.0"
const digits = (str.match(/\d/g) || []).length;

console.log(digits); // 输出结果为8

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 08:15:04