JSFiddle - React, Tailwind, and code Playground
HTML
<input type="text" id="texto"/>
CSS
#texto{float:left;}
#contador{float:left;clear:both;}
JavaScript
jQuery.fn.repeticiones = function(){
function substr_count (haystack, needle, offset, length) {
// http://kevin.vanzonneveld.net
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + bugfixed by: Onno Marsman
// + improved by: Brett Zamir (http://brett-zamir.me)
// + improved by: Thomas
// * example 1: substr_count('Kevin van Zonneveld', 'e');
// * returns 1: 3
// * example 2: substr_count('Kevin van Zonneveld', 'K', 1);
// * returns 2: 0
// * example 3: substr_count('Kevin van Zonneveld', 'Z', 0, 10);
// * returns 3: false
var cnt = 0;
haystack += '';
needle += '';
if (isNaN(offset)) {
offset = 0;
}
if (isNaN(length)) {
length = 0;
}
if (needle.length == 0) {
return false;
}
offset--;
while ((offset = haystack.indexOf(needle, offset + 1)) != -1) {
if (length > 0 && (offset + needle.length) > length) {
return false;
}
cnt++;
}
return cnt;
}
$(this).each(function(){
var input = $(this);
var contador = $("<span id='contador'></span>");
input.after(contador);
input.keyup(function(e){
input = $(this);
var clave = input.attr('value');
function repCarac(p){
var carac, expr;
var coinc;
var coincacum = '';
var numcoinc = 0;
for(var i=0;i<p.length;i++){
carac = p.charAt(i);
coinc = substr_count(p, carac);
if (coinc > 1) {
if (substr_count(coincacum, carac)) continue;
else {
coincacum = coincacum + carac;
numcoinc = numcoinc + coinc;
}
}
/*expr = new RegExp(carac,'g');
coinc = p.match(expr);
if(coinc.length > 1){
if(coincacum.match(expr))
{continue;}
else{
coincacum = coincacum + carac;
numcoinc = numcoinc + coinc.length;
}
}*/
}
return numcoinc;
}
contador.text('coincidencias:...