J'essaie de compter le nombre de mots dans une chaîne donnée à l'aide du code suivant:
var t = document.getElementById('MSO_ContentTable').textContent; if (t == undefined) { var total = document.getElementById('MSO_ContentTable').innerText; } else { var total = document.getElementById('MSO_ContentTable').textContent; } countTotal = cword(total); function cword(w) { var count = 0; var words = w.split(" "); for (i = 0; i < words.length; i++) { // inner loop -- do the count if (words[i] != "") { count += 1; } } return (count); }
5 Réponses :
Vous pouvez utiliser une utilisation intelligente de la méthode Remplacer () Bien que vous ne remplaciez rien.
var str = "the very long text you have..."; var counter = 0; // lets loop through the string and count the words str.replace(/(\b+)/g,function (a) { // for each word found increase the counter value by 1 counter++; }) alert(counter);
Je suis nouveau dans JavaScript si plz dites-moi ce qui est (a) comme fonction arguments
un contient la valeur du mot actuel compté
J'aime ça, j'aime beaucoup ça. Bonne réponse.
Vous pouvez utiliser p> split code> et ajouter un WordCounter à la chaîne code> prototype:
if (!String.prototype.countWords) {
String.prototype.countWords = function() {
return this.length && this.split(/\s+\b/).length || 0;
};
}
console.log(`'this string has five words'.countWords() => ${
'this string has five words'.countWords()}`);
console.log(`'this string has five words ... and counting'.countWords() => ${
'this string has five words ... and counting'.countWords()}`);
console.log(`''.countWords() => ${''.countWords()}`);
Lorsque la chaîne est vide, ces fonctions renvoient 1.
@Juscodin (car la scission renvoie un tableau avec la chaîne vide en effet) ajusté la réponse, THX
Je préférerais une solution de regex uniquement:
p>
\w+ between one and unlimited word characters /g greedy - don't stop after the first match
C'est probablement l'approche la plus efficace lorsqu'elle traite du texte long.
Une bonne solution, bien qu'elle générera une erreur si la chaîne d'entrée est de la longueur 0 ou est tout espiègle.
Pourquoi le groupe dans Regex? c'est-à-dire pourquoi pas seulement / \ w + / code>
//Count words in a string or what appears as words :-) function countWordsString(string){ var counter = 1; // Change multiple spaces for one space string=string.replace(/[\s]+/gim, ' '); // Lets loop through the string and count the words string.replace(/(\s+)/g, function (a) { // For each word found increase the counter value by 1 counter++; }); return counter; } var numberWords = countWordsString(string);
C'est la meilleure solution que j'ai trouvée: p>
Ceci invertit la sélection WhitSpace, qui est meilleur que Si vous n'êtes pas prudent avec la correspondance de WhitSpace, vous compterez des cordes vides, des cordes avec des espaces de tête et de la touche de fuite, ainsi que toutes les chaînes blanchies en tant que correspondant lorsque cette solution gère des chaînes comme
fonction wordcount (str) {
var m = str.match (/ [^ \ s] + / g)
retour m? m.length: 0;
}
code> p>
\ w + code> car il ne correspond que l'alphabet latin et _ (voir
'' code>,
'A \ t \ t! \ r \ n # $% () d' code> correctement (si vous définissez "correct" comme 0 et 4). P>
Cette réponse est sous-estimée OMI.
Yeah, Classic Stackoverflow où la bonne réponse réelle est cachée par deux réponses incomplètes avec plus de votes et une réponse clairement erronée acceptée comme correcte
Je ne suis pas sûr de votre question, mais quel est le chèque contre une chaîne vide?
En bref, je appelle la fonction COD () avec un paragraphe de chaîne sous forme d'argument.Mais la valeur de retour est différente dans FF et IE
Quel est un exemple de chaîne qui vous donne différents résultats entre navigateurs?
Lorsque j'utilise une grande partie de la chaîne, il me donne un résultat de curret, mais certaines modifient certaines entrées ANS espaces change de résultat ci-dessous est ma chaîne Bienvenue dans votre bibliothèque wiki! Vous pouvez commencer et ajouter du contenu à cette page en cliquant sur Modifier en haut de cette page ou en savoir plus sur les bibliothèques Wiki en cliquant sur [[Comment utiliser cette bibliothèque]]. Qu'est-ce qu'une bibliothèque wiki? Wikiwiki signifie rapide en Hawaïen. Une bibliothèque de wiki est une bibliothèque de documents dans laquelle les utilisateurs peuvent facilement modifier n'importe quelle page.