Angenommen: str Wert = 'Dies ist ein Text';JS/jQuery: wie viele Zeichen im Textbereich vorkommen
Ich möchte zählen, wie viele 't' Vorkommen, wie geht das?
Angenommen: str Wert = 'Dies ist ein Text';JS/jQuery: wie viele Zeichen im Textbereich vorkommen
Ich möchte zählen, wie viele 't' Vorkommen, wie geht das?
Es ist viel einfacher, mit regex
var regex = new RegExp("t", "gi")
var count = "This is some text".match(regex).length;
Werden Sie zählt von t
in dem gegebenen String (ignorieren Fall) geben.
Sie können es here testen.
Weitere Referenz
RegExp 1
RegExp 2
String
String.match()
Eine einfache Lösung ist eine Schleife
var count = 0;
for(var i = 0; i < str.length; i ++) {
if(str.charAt(i) === 't')
++count;
}
Sie auch str.toLowerCase();
verwenden möchten, wenn Sie Groß- und Kleinschreibung nicht sein wollen.
Mehrere Möglichkeiten, dies zu tun ...
function countChar(str, searchChar) {
var num=0;
for (var i=0; i<str.length; ++i) {
if (str[i] == searchChar)
++num;
}
return num;
}
Verwendung wie:
NUMT = countChar ('Dies ist ein Text', 't');
<button onclick="alert(countCharacter('abcdea', 'a'));"> Test! </button>
<script type="text/javascript">
function countCharacter(sample, characterToFind) {
var result = 0;
for(i = 0;i<sample.length;i++) {
if(sample[i] === characterToFind) {
result++;
}
}
return result;
}
</script>
Ich denke, Sie alle machen es komplizierter als es sein muss. Verwenden Sie Regex. Dies ist ebenfalls nicht der Fall. Wenn Sie die Groß-/Kleinschreibung beachten möchten, entfernen Sie das i nach g.
var str = "This is some text";
var pattern = /t/gi;
alert(str.match(pattern).length);
Machen Sie es kürzer.
var str = "This is some text";
alert(str.match(/t/gi).length);
Regex eigentlich ziemlich teuer ist, so dass die Lösung Split zu verwenden, ist wahrscheinlich die schnellste Lösung vorgeschlagen –
var sValue = 'This is some text';
var tCount = sValue.split("t").length - 1;
alert("t appears " + tCount + " times");
Wenn Sie Vorkommen aller Briefe zählen möchten, besser Sie eine Schleife verwenden, wie in den anderen Antworten gezeigt.
Dies ist in Ordnung, solange Sie nicht zu einem Regex für die 'split()', wo Sie Probleme mit zwei benachbarten Übereinstimmungen in IE beginnen würde. –
@Tim yep, diese ist "non regex" Lösung, mit regex gibt es keinen Punkt in Split sowieso. :) –
Kann sein, können Sie sich hier helfen
.replace().length
in Bezug
Wazzy
bessere Lösung. – Gere