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()
.
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).
Tags und Links javascript internet-explorer-9 firefox3.5