Javascript 如何计算字符串中某个字符的出现次数,而不是其中一个?

Javascript 如何计算字符串中某个字符的出现次数,而不是其中一个?,javascript,Javascript,我有一个字符串,我需要检查字符出现的次数 var obj = "str one,str two,str three,str four"; 我正在尝试这样的事情:- console.log(("str one,str two,str three,str four".match(new RegExp("str", "g")) || []).length); 它返回4 这很好用 但我的条件是我不必从该字符串中检查str three,因此输出应该是3 帮我找到这个问题的解决办法 谢谢将字符串拆

我有一个字符串,我需要检查字符出现的次数

   var obj = "str one,str two,str three,str four";
我正在尝试这样的事情:-

console.log(("str one,str two,str three,str four".match(new RegExp("str", "g")) || []).length);
它返回4

这很好用

但我的条件是我不必从该字符串中检查str three,因此输出应该是3

帮我找到这个问题的解决办法


谢谢

将字符串拆分为一个数组,然后计算

  • 不是“三号str”
  • 匹配您的regexp
  • 像这样的

    var numMatches = obj.split(',').filter(function(str) {
        return el !== 'str three' && el.match(/str/);
    }).length
    
    或者,如果您想从regexp中获得乐趣,可以使用负面展望

    var numMatches = obj.match(/(?!str three)str/g).length;
    
    var string=“str1、str2、str3、str4”;
    变量计数=(string.match(/str[0-24-9]/g)| |[])长度;
    控制台日志(计数)//3.
    var string=“str一、str二、str三、str四”;
    变量计数=(string.match(/str(?!three)/g)| |[])长度;
    
    控制台日志(计数)//3
    您想要所有str[number]的出现,但不想要str3?是,但不想要str3@MarcosCasagrande我只是更新了我的问题,你能看一下吗我只是更新了我的问题,你能看一下吗我只是更新了我的问题,你能看一下吗非常感谢你的帮助它很好,但是如果我像那样(/str(?!three)/g)改成(/(?!three)str/g)您的实际字符串是什么,因为对于您给定的字符串,我的正则表达式确实可以工作,正如您在示例中所看到的;)我的实际字符串是pick,而不是pick,pick,INSTALL;;所以我只需要选择计数。我明白了,这就是为什么我说不要忘记发布您的实际字符串,因为正则表达式可能完全不同;)