Bindestriche und Kommas trennen keine Wörter
Die Implementierung trimmt beide Enden mit trim() und trennt danach mit /\s+/u. Leere Eingabe oder nur Weißraum ergibt 0. Leerzeichen, Tabulatoren und Zeilenumbrüche trennen Blöcke; Bindestriche, Kommas und Apostrophe allein nicht. JavaScripts \s entspricht WhiteSpace und LineTerminator der Spezifikation.
Damit zählt state-of-the-art als 1, one,two als 1 und one, two als 2. don’t stop hat ebenfalls zwei Blöcke. ... zählt als 1, obwohl es nur Satzzeichen enthält. Das ist keine Anzahl bedeutungstragender Wörter. words ist im Code die Werkzeugstatistik.
countText("state-of-the-art").words // 1
countText("one,two").words // 1
countText("one, two").words // 2
countText("don’t stop").words // 2
countText("...").words // 1Text ohne Leerzeichen wird nicht sprachabhängig zerlegt
你好世界 zählt als 1. Das bedeutet nicht, dass der chinesische Satz nur ein sprachwissenschaftliches Wort hat. Unicode UAX #29 erklärt, dass Wortgrenzen nicht auf Weißraum und Satzzeichen begrenzt sind und manche Sprachen Anpassungen benötigen. Moyoutil nutzt diesen Algorithmus oder Wörterbuchanalyse nicht.
countText("你好世界").words // 1
countText("one two").words // 2
countText("one\ntwo").words // 2
countText(" \t\n").words // 0Unicode UAX #29: Word Boundaries
Fügen Sie Text in den Zeichen- und Bytezähler ein; die Werte ändern sich sofort. Prüfen Sie einen Beispielsatz mit Bindestrichen oder Umbrüchen vor dem ganzen Entwurf. Ist ein Editor oder Verfahren vorgeschrieben, nutzen Sie es für die Endkontrolle. Zusätzliche Leerzeichen zum Verändern der Zahl verändern den Text selbst.
Häufig gestellte Fragen
Erhöhen mehrere Leerzeichen oder Umbrüche die Wortzahl?
Aufeinanderfolgende Trennzeichen bilden eine Grenze. Zwei Leerzeichen zwischen one und two ergeben weiterhin 2; ein Zeilenumbruch ebenfalls. Gleiche Wortzahlen können unterschiedliche Zeichenzahlen mit Leerzeichen oder UTF-8-Bytezahlen haben.