Javascript:字符串中出现字符的次数

时间:2010-05-25 09:46:13

标签: javascript string

是否有一种简单的方法可以检查字符在字符串中出现的次数?

6 个答案:

答案 0 :(得分:59)

您可以删除字符串中的任何其他字符并检查长度:

str.replace(/[^a]/g, "").length

此处计算a中有多少str

答案 1 :(得分:31)

在下面的示例中计算a

str = "A man is as good as his word";
alert(str.split('a').length-1);

如果你想要不区分大小写,你需要像

这样的东西
alert(str.split( new RegExp( "a", "gi" ) ).length-1);

所以它抓住“A”和“a”......“g”标志并不是真的需要,但你需要“i”标志

答案 2 :(得分:14)

使用RegEx计算字符串中" a"的数量。



var string = 'aajlkjjskdjfAlsj;gkejflksajfjskda';

document.write(string.match(/a/gi).length);




让我解释一下这是如何运作的:

string.match这是一个RegEx方法。它在指定的字符串中搜索指定的RegEx(在这种情况下,字符串" string")。

(/a/gi)这是实际的RegEx。它读取,"找到角色a。"这很简单。它还带有两个标志," g"和"我"。 " g"说找到角色的所有出现" a"。否则它只会找到第一个,它永远不会超过第一个。第二个标志是" i"。它使RegEx匹配该角色的所有情况。如果那个标志(i)不存在,那么上面的代码只会计算4,因为它会跳过大写字母" A"在字符串中。由于" i",它将匹配上部小写。删除" i"如果你想匹配字母案例。

string.match返回所有匹配的数组,因此我们使用length方法检索数组条目的数量。就这么简单!

答案 3 :(得分:5)

我认为在这种情况下避免使用正则表达式会更方便,更安全

这是因为如果我们希望能够计算任何种类的字符,那么我们需要考虑两个表达式。一个用于常见字符,第二个用于特殊字符,例如[]^等。忘记它很容易,但是即使我们记得它,我认为我们也不必要扩展我们的代码。

在这种情况下,对于字符串str和字符ch来说,适用于以下每种解决方案:

let count = str.split(ch).length - 1

(感谢@Sarfraz

let count = str.split('').filter(x => x == ch).length

let count = 0
str.split('').forEach(x => x == ch ? count++ : null)

享受!

答案 4 :(得分:3)

var s = "dqsskjhfds";
alert(s.length - s.replace(/a/g, "").length); // number of 'a' in the string

答案 5 :(得分:1)

var a = "acvbasbb";
var b= {};
for (let i=0;i<a.length;i++){
    if((a.match(new RegExp(a[i], "g"))).length > 1){
        b[a[i]]=(a.match(new RegExp(a[i], "g"))).length;
    }
}
console.log(b);