1

変数内の「a」文字の数を数えようとしていますが、何かが機能していません:

js コードは次のとおりです。

function verChars() {
    var z = document.getElementById("num").value;
    var y = 0;
    var x = 0;

    for (x = 0; x < z.length; x++) {
        if (z.substring(x) === "a") {
            y++;
        }
    }

    if (y === 0) {
        alert("The string has no 'a' char.");   
    } else if (y === 1) {
        alert("The string has a single 'a' char."); 
    } else {
        alert("The string has "+ y +" 'a' chars."); 
    }
}

HTMLコードは次のとおりです。

<input type="text" id="num" value="Some text...">
<input type="button" onClick="verChars();" value="Test!">
4

3 に答える 3

1

の代わりにz.substring(x)、単にz[x]==='a'

部分文字列の構造は

string.substring(from, to)

fromしたがって、引数を渡すだけでは、文字の後のthat many文字列の一部になります

すなわち"hello".substring(3) =="lo"

于 2013-05-07T14:00:11.497 に答える
1

z.charAt(x)、またはが必要だと思いますz[x]

または正規表現を使用します。

y = z.replace(/[^a]/g, '').length;

この置換プロセスにより、オリジナルの「a」以外のすべてで構成される文字列が生成され、残りの長さが取得されます。(元の文字列はそのまま残され.replace()ます。)

于 2013-05-07T14:00:31.310 に答える
1

間違った方法を使用しています。.substring()使用する代わりに.charAt()

if (z.charAt(x) === "a") { ... }

ただし、文字列内の文字を数える簡単な方法が他にもいくつかあります。

var y = z.split("a").length - 1;
// or
var y = (z.match(/a/g) || []).length;
于 2013-05-07T14:00:32.793 に答える