2017-09-08 2 views
1

Je ne sais pas comment créer une fonction jquery qui compte combien de fois un caractère donné (par exemple la lettre "b", lowcase) est répété à l'intérieur d'un élément de la page (dans mon cas un div préformaté).Nombre de caractères dans une zone de texte

Des suggestions?

+0

Qu'avez-vous essayé? Vous obtiendrez une bien meilleure réponse si vous pouvez montrer que vous avez au moins essayé de résoudre votre propre problème avant de demander aux autres de vous donner des réponses. –

+0

analyser la page et utiliser regex.test (page) pour compter les correspondances – clearshot66

+0

var str = $ ('pre'). Html(); alerte (str.split ('b'). Longueur-1); ça pourrait aller? –

Répondre

2

Une approche fonctionnelle avec la ligne de location de code pour envoyer un caractère à la recherche: - ***

$(document).ready(function(){ 
 
    $('button').click(function(){ 
 
    console.log(getCharCount('b'));// send any character 
 
    }); 
 
}); 
 

 
function getCharCount(search){ 
 
return $('textarea').val().toLowerCase().match(new RegExp(search, 'g')).length; // to check both lowercase case-uppercase presence 
 
//return ($('textarea').val().match(new RegExp(search, 'g')).length; // for lowercase match only 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<textarea></textarea> 
 

 
<button>count b</button>

+0

'.toLowerCase()' devrait être ajouté après '.val()'. –

+1

@ MD.KhairulBasar désolé, l'édition d'erreur. Corrigé cela.Merci de souligner –

+0

AlbertoMoneti si la réponse vous a été utile, veuillez marquer la réponse comme acceptée. –

2

faire comme ci-dessous: -

$(document).ready(function(){ 
 
    $('button').click(function(){ 
 
    var countB = $('textarea').val().toUpperCase().match(/B/g); 
 
    if(countB){ 
 
     console.log(countB); 
 
     console.log(countB.length); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<textarea></textarea> 
 

 
<button>count b</button>

2

réutilisable pour toute lettre ..

function charCount (array, character) { 
 
     // Keep a running total. 
 
     var count = 0; 
 
     // Loop over the array. 
 
     for (var i = 0; i < array.length; i++) { 
 
      // If the character matches, increment the count. 
 
      if (array[i] === character) { 
 
       count ++ 
 
      } 
 
     } 
 
     // Return the count when the loop has finished. 
 
     return count; 
 
    } 
 

 
    // Push the characters into an array. 
 
    var letterArray = $('.text').text().toLowerCase().split(''); 
 

 
    // Pass the array and chosen letter to the function 
 
    alert(charCount(letterArray, 'b')) // 3
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<textarea class="text">Bubbles</textarea>

+0

Pourquoi downvote ??? –