794 Stimmen

Zählt die Anzahl der Vorkommen eines Zeichens in einer Zeichenkette in Javascript

Ich muss die Anzahl der Vorkommen eines Zeichens in einer Zeichenkette zählen.

Nehmen wir zum Beispiel an, meine Zeichenkette enthält:

var mainStr = "str1,str2,str3,str4";

Ich möchte die Anzahl der Kommas ermitteln , Zeichen, also 3, und die Anzahl der einzelnen Zeichenfolgen nach der Trennung durch Komma, also 4.

Außerdem muss ich überprüfen, dass jede der Zeichenketten, d. h. str1 oder str2 oder str3 oder str4, nicht mehr als, sagen wir, 15 Zeichen umfassen sollte.

4voto

Md. Jamal Uddin Punkte 618

Hier ist meine Lösung. Viele Lösungen wurden bereits vor mir gepostet. Aber ich liebe es, meine Ansicht hier zu teilen.

const mainStr = 'str1,str2,str3,str4';

const commaAndStringCounter = (str) => {
  const commas = [...str].filter(letter => letter === ',').length;
  const numOfStr = str.split(',').length;

  return `Commas: ${commas}, String: ${numOfStr}`;
}

// Run the code
console.log(commaAndStringCounter(mainStr)); // Output: Commas: 3, String: 4

Hier finden Sie meine REPL

4voto

wlf Punkte 801
s = 'dir/dir/dir/dir/'
for(i=l=0;i<s.length;i++)
if(s[i] == '/')
l++

3voto

Jakub Wawszczyk Punkte 367

Ich habe an einem kleinen Projekt gearbeitet, das einen Sub-String-Zähler benötigt. Die Suche nach den falschen Phrasen brachte mir keine Ergebnisse, aber nachdem ich meine eigene Implementierung geschrieben hatte, bin ich über diese Frage gestolpert. Wie auch immer, hier ist mein Weg, es ist wahrscheinlich langsamer als die meisten hier, aber vielleicht hilfreich für jemanden sein:

function count_letters() {
var counter = 0;

for (var i = 0; i < input.length; i++) {
    var index_of_sub = input.indexOf(input_letter, i);

    if (index_of_sub > -1) {
        counter++;
        i = index_of_sub;
    }
}

http://jsfiddle.net/5ZzHt/1/

Bitte lassen Sie mich wissen, wenn Sie finden, dass diese Implementierung nicht funktioniert oder einige Standards nicht einhält! :)

UPDATE Vielleicht möchten Sie sie ersetzen:

    for (var i = 0; i < input.length; i++) {

Mit:

for (var i = 0, input_length = input.length; i < input_length; i++) {

Interessante Lektüre zu den oben genannten Themen: http://www.erichynds.com/blog/javascript-length-property-is-a-stored-value

2voto

user2296195 Punkte 49

Wie wäre es mit string.split(desiredCharecter).length-1

Ejemplo:

var str = "Hallo, wie ist das Leben"; var len = str.split("h").length-1; ergibt die Anzahl 2 für das Zeichen "h" in der obigen Zeichenkette;

2voto

DerpyCoder Punkte 89
function len(text,char){

return text.innerText.split(string).length
}

console.log(len("str1,str2,str3,str4",","))

Dies ist eine sehr kurze Funktion.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X