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

如何统计字符串中指定运算符数组元素的出现次数

统计字符串中指定运算符的总次数

没问题,这有几个实用的JavaScript实现方案,刚好对应你给出的需求——统计目标字符串里属于指定运算符数组的字符总出现次数:

方法1:遍历字符串逐个检查

这是最直观的方式,逐个遍历字符串的每个字符,判断它是否在我们的运算符列表里,符合条件就累加计数:

const operators = ["+", "-", "/", "*", "%"];
const string = "2+2-3";

let operatorCount = 0;
// 遍历字符串的每一个字符
for (const char of string) {
  // 检查当前字符是否是我们要统计的运算符
  if (operators.includes(char)) {
    operatorCount++;
  }
}

console.log(operatorCount); // 输出:2

方法2:正则表达式匹配

利用正则的全局匹配功能,一次性找出所有符合条件的运算符,再取匹配结果的长度就是总次数。需要注意的是,部分运算符在正则里属于特殊字符,把它们放进[]字符集里就能当作普通字符处理:

const operators = ["+", "-", "/", "*", "%"];
const string = "2+2-3";

// 将运算符数组转为正则字符集,注意把"-"放在数组末尾避免正则范围问题
const operatorRegex = new RegExp(`[${operators.join('')}]`, 'g');
// 全局匹配所有符合的运算符
const matches = string.match(operatorRegex);

// 有匹配结果则取长度,否则为0
const operatorCount = matches ? matches.length : 0;
console.log(operatorCount); // 输出:2

方法3:数组reduce累加

把字符串转为字符数组后,用reduce方法来完成计数,写法更简洁:

const operators = ["+", "-", "/", "*", "%"];
const string = "2+2-3";

// 展开字符串为字符数组,用reduce累加符合条件的字符数量
const operatorCount = [...string].reduce((total, char) => {
  return operators.includes(char) ? total + 1 : total;
}, 0);

console.log(operatorCount); // 输出:2

补充说明

如果你的场景中需要区分连续运算符(比如"2++3"里的两个+是否算两次),上面的方法都会按单个字符统计,刚好符合你示例里的需求。如果需要更复杂的运算符匹配(比如多字符运算符),可以调整正则或判断逻辑来适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 00:13:11