Contar las veces que aparece un carácter en un String de Javascript

Para saber las veces que aparece un carácter en un string de Javascript podemos hacerlo de la siguiente forma:

Esto nos devolverá «8«, que son las veces que aparece la «A» en toda la cadena.

Podemos verlo funcionando en:

 



 

O utilizar la siguiente función:

Donde le pasaríamos la cadena que queremos y el carácter a buscar…
Algo así por ejemplo:

Y esto nos devolvería: 8

Para trastear:


Tu opinión es importante para mi, ¿Te ha resultado útil este artículo?

13 Comments

claudia

Hola,
Estoy tratando de capturar la cantidad de cada caracteres ingresados en un texto, pero me muestra para las 3 letras de ejemplo la misma cantidad. Llevo 1 mes estudiando Javascript y no encuentro la solución. Porfa me ayudas!!!!!mil gracias….
Claudia.

var cadena = prompt(«Ingrese un texto»);

var indices = [];
for(var i = 0; i < cadena.length; i++) {
if (cadena[i].toLowerCase() === 'a') indices.push(i);
if (cadena[i].toLowerCase() === 'b') indices.push(i);
if (cadena[i].toLowerCase() === 'c') indices.push(i);
}//necesito ingresar todo el abecedario
console.log(indices.length + " : " + "a");
console.log(indices.length + " : " + "b");
console.log(indices.length + " : " + "c");

Reply
kike

¡¡Hola Claudia!!

Muchas gracias por escribir (:

Podrías hacerlo utilizando la siguiente función:

A raíz de tu consulta, he preparado un post explicando el proceso, puedes verlo en https://ekiketa.es/contar-las-letras-que-aparecen-en-un-string-con-javascript/.

¡Saludos!

Reply
tulsi

Hola! me gustaria poder buscar una palabra en vez de una letra, estoy tratando de buscar algunos anagramas dentro de una cadena de strings… Sabras que tipo de funcion tendría que emplear??, de antemano muchas gracias

Reply
kike

Hola Tulsi,

Gracias por escribir (:
Dedicaré un post a explicar un poco mejor cómo hacer esto pero de momento te lo cuento rápidamente.
Podemos utilizar una expresión regular y la función match de Javascript para ello.

Te pego el fiddle para que veas el ejemplo:

¡¡Saludos!!

Reply
kike

¡Hola Juan José!

Gracias por escribir, ¿A qué te refieres exactamente? Ponme un ejemplo y lo revolvemos entre los dos (:

¡Saludos!

Reply
RicG

Hola, quiero hacer una función en la que se pida al usuario que meta una frase y la web
responda con la cantidad de caracteres que se han escrito y las veces que se repite
cada uno de los que forman la frase, me vendría bien un poco de ayuda, ya que soy novato en esto.

Reply
kike

¡Hola RicG!

Claro, mira. A raíz de una consulta de una compañera escribí esta entrada: Contar las veces que aparece una letra en una frase con Javascript.

Para contar los carácteres totales puedes hacerlo con:

Espero que te sirva (:

¡¡Saludos!!

Reply
RicG

Lo que me gustaría es ver si es posible con un bucle for, guardando en un array los caracteres y que lo recorriera buscando las repeticiones y que al principio le pidiesen al usuario que entra que escribiera la frase (con un prompt) que es de la que se van a sacar que caracteres salen y cuantas veces salen, no sé si me explico.

Reply
RicG

Hola, quería comentarte que hice la solución que me mostraste por aquí y no es exactamente eso, lo que quería era que recorriera un array donde he guardado las variables (en este caso las letras del abecedario) para una frase que introduce el usuario y que le diga, por ejemplo, la a aparece 7 veces, la b 5, la c 6, pero la frase la introduce el usuario, gracias por la ayuda y un saludo.

Reply
kike

Buenas RicG, gracias por volver a escribir (:

Mira a ver si este script te va mejor. Puedes editarlo con los tips que comentos en los posts: quitarle los espacios o dejarlos, diferenciar entre mayúsculas y minúsculas, etc…

¡Un saludo!

amanda

yo he hecho esto pero no me sale, me podría ayudar?

#include
using namespace std;

int main() {

string nombre, letra;
int i, longitud, contador=0;

cout<< "Dime una frase: ";
getline (cin, nombre);

cout<< "Dime letra a encontrar: ";
getline (cin, letra);

longitud = nombre.length();

for (i=0; i<longitud; i++ )
{
if (nombre == letra){

contador++;
}
}

cout << "La letra "<< letra << " aparece en "<< nombre << " "<< contador << " veces";

return 0;
}

Reply
kike

!Hola Amanda!

Lo siento, parece que estás usando c++ pero este post está orientado a Javascript.

Puedes buscar equivalencias para c++ y tendrás la solución, al fin y al cabo si conoces un lenguaje puedes manejarte mas o menos con otros.

!Saludos!

Reply

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*