如何计算字符串中的字母?

How to count Letters inside a string?

我的代码:

function letterCounter(str) {
    var letters = 0;
    var alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    for (var i=0; i<str.length;i++) {
        if (str[i] === alphabet.split("")) {
            letters = letters + str[i];
        }
    }
    console.log(letterCounter("Hello World!!!1"));
}

我不确定我犯了什么错误,我得到的答案是 0 个字母。 谢谢。

您在代码中使用 str[i] === alphabet.split("") 将字符与数组进行比较,这没有任何意义,您需要检查字符是否在数组内。另外,console.log 不能在函数内部,否则会递归调用无限次。

使用

function letterCounter(str) {
    var letters = 0;
    var alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    var ar = alphabet.split("");
    for (var i=0; i<str.length;i++) {
        if (ar.indexOf(str[i]) > -1) {
            letters = letters + 1;
        }
    }
    return letters;
}
console.log(letterCounter("Hello World!!!1"));

另一种方法是使用正则表达式:

var s = "Hello World!!!1";
var rx = /[a-z]/gi;
var m = s.match(rx);
if (m) {
  console.log(m.length);
}

你可以使用正则表达式:

function letterCounter (x) {
  return x.replace(/[^a-zA-Z]/g, '').length;
}

console.log(letterCounter('Hello World!!!1'))

计算字母e的个数 例如:

var str = "Hello hello hello hello";
var lengthOfE = str.match(/e/gi).length;
console.log(lengthOfE);

然后在循环中使用这个来计算每个元素的计数