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

时间:2016-09-12 13:40:41

标签: javascript string letter

我的代码:

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封信作为答案。 谢谢。

3 个答案:

答案 0 :(得分:5)

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

使用

&#13;
&#13;
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"));
&#13;
&#13;
&#13;

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

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

答案 1 :(得分:1)

您可以使用正则表达式:

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

console.log(letterCounter('Hello World!!!1'))
&#13;
&#13;
&#13;

答案 2 :(得分:1)

要计算字母{0: Array(2), 1: Array(11), 2: Array(3), 3: Array(7), 4: Array(5), 5: Array(4)} 的数量,例如:

e

然后使用此循环计算每个元素的计数

相关问题