Anzahl der Wörter in einer Zeichenfolge mit JavaScript zählen

8

Ich versuche, die Anzahl der Wörter in einer gegebenen Zeichenfolge mit dem folgenden Code zu zählen:

%Vor%

In diesem Code erhalte ich Daten von einem Div-Tag und sende es an die cword() -Funktion zum Zählen. Obwohl der Rückgabewert in IE und Firefox unterschiedlich ist. Ist eine Änderung im regulären Ausdruck erforderlich? Eine Sache, die ich zeige, dass beide Browser dieselbe Zeichenfolge senden, ist ein Problem innerhalb der Funktion cword() .

    
V_B 01.07.2011, 05:26
quelle

5 Antworten

3

Sie können die replace () -Methode geschickt verwenden, obwohl Sie nichts ersetzen.

%Vor%

Die Regex kann verbessert werden, um beispielsweise HTML-Tags auszuschließen

    
Ibu 01.07.2011, 05:35
quelle
14

Sie können split verwenden und dem String -Prototyp einen Wordcounter hinzufügen:

%Vor%

Wenn Sie Dinge wie ... oder - in einem Satz ausschließen wollen:

%Vor%     
KooiInc 01.07.2011 05:39
quelle
6

Ich würde eine RegEx-only-Lösung bevorzugen:

%Vor%

Die Regex ist

%Vor%

Die Klammern erstellen eine Gruppe um jedes Spiel. Daher sollte die Länge aller übereinstimmenden Gruppen mit der Anzahl der Wörter übereinstimmen.

    
DanielH 11.12.2014 08:14
quelle
0
%Vor%     
Roman 09.05.2015 17:25
quelle
0

Dies ist die beste Lösung, die ich gefunden habe:

function wordCount(str) { var m = str.match(/[^\s]+/g) return m ? m.length : 0; }

Dies invertiert die Whitespace-Auswahl, was besser ist als \w+ , da es nur mit dem lateinischen Alphabet und _ übereinstimmt (siehe Ссылка )

Wenn Sie nicht auf die Übereinstimmung von Leerzeichen achten, zählen Sie leere Zeichenfolgen, Zeichenfolgen mit vorangestelltem und nachkommendem Leerzeichen und alle Leerzeichen als Übereinstimmungen, während diese Lösung Zeichenfolgen wie ' ' , ' a\t\t!\r\n#$%() d ' richtig behandelt (wenn Sie definieren 'richtig' wie 0 und 4).

    
aaron 28.05.2016 00:13
quelle