Contare la quantità totale di parole specifiche in una stringa JavaScript

Nov 27 2020

Voglio scoprire quante volte una parola specifica si verifica in una stringa JavaScript, oppure possiamo dire la quantità totale di parole con corrispondenza / corrispondenza con la stringa della frase completa in JavaScript.

query = "fake";

var inputString = "fakefakefakegg fake 00f0 221 Hello wo fake misinfo fakeddfakefake , wo misinfo misinfo co wo fake , fake fake fake ";

risultato atteso = 13 (c'è 13 fake nella frase precedente)

Risposte

FarbodAprin Nov 27 2020 at 11:02

Di seguito sono riportati due metodi per trovare il numero totale di parole con corrispondenza di occorrenza nella stringa.

La prima funzione consente di fornire una query come input. Il secondo utilizza la funzione .match di JavaScript.

Entrambi i metodi introdotti sono resistenti per qualsiasi carattere e indipendenti da splitter e separatore come "" o ",".

str1 è la tua query

 str1 = "fake";  

str2 è l'intera stringa:

 var inputString = "fakefakefakegg fake 00f0 221 Hello wo fake misinfo
 fakeddfakefake , wo  431,,asd misinfo misinfo co wo fake sosis bandari
 mikhori?, fake fake fake ";

Metodo 1: usa la funzione .indexOf o .search di JavaScript (vantaggio che puoi dare in input)

function CountTotalAmountOfSpecificWordInaString(str1, str2)
{
    let next = 0;
    let findedword = 0;
        do {
            var n = str2.indexOf(str1, next);
            findedword = findedword +1;
            next = n + str1.length;
            }while (n>=0);
     console.log("total finded word :" , findedword - 1 );
     return findedword;
   }

Metodo 2: usa la funzione .match di JavaScript:

/**
 * @return {number}
 *  you have to put fake as query manually in this solution!!! disadvantage
 */

function CountTotalAmountOfMachedWordInaString(str2) {
    let machedWord = 0;
    machedWord = str2.match(/fake/g).length; 
    console.log("total finded mached :" , machedWord);
    return machedWord;
}

chiamare le funzioni (Input):

CountTotalAmountOfSpecificWordInaString("fake" , "fake fakefakegg fake 00f0 221 Hello wo fake rld fakefakefake , wo lklsak dalkkfakelasd co wo fake , fake fake fake" );
CountTotalAmountOfMachedWordInaString("sosis bandarie fake  khiyarshour sosis , droud bar fake to sosis3");


//Function 1 Output: total Fake = 13 , Function 2 Output: total Fake = 2