Comment puis-je compter le nombre de fois qu'une chaîne particulière apparaît dans une autre chaîne. Par exemple, voici ce que j'essaie de faire en Javascript :
var temp = "This is a string.";
alert(temp.count("is")); //should output '2'
Le g
de l'expression régulière (abréviation de global) indique qu'il faut chercher dans toute la chaîne plutôt que de se contenter de trouver la première occurrence. Cela correspond à s
deux fois :
<-- language : lang-js --> var temp = "This is a string." ; var count = (temp.match(/is/g) || []).length ; console.log(count) ;
Et, s'il n'y a pas de correspondance, elle renvoie 0
:
var temp = "Hello World!" ;
var count = (temp.match(/is/g) || []).length ;
console.log(count) ;
Vous pouvez utiliser match
pour définir une telle fonction :
String.prototype.count = function(search) {
var m = this.match(new RegExp(search.toString().replace(/(?=[.\\+*?[^\]$(){}\|])/g, "\\"), "g"));
return m ? m.length:0;
}