2011-04-16 40 views
15

¿Hay una biblioteca javascript para contar el número de sílabas en una palabra? ¿Como contar?¿Cómo calcular el número de sílabas en una palabra en javascript?

Gracias

Editar

Gracias Sydenam y Zozo para obtener información útil y posibles respuestas.

Encontré el código por Pesto at this forum, pero está en Ruby. Una de sus versiones concisas es la siguiente:

def new_count(word) 
    word.downcase! 
    return 1 if word.length <= 3 
    word.sub!(/(?:[^laeiouy]es|ed|[^laeiouy]e)$/, '') 
    word.sub!(/^y/, '') 
    word.scan(/[aeiouy]{1,2}/).size 
end 

Esto parece corto pero complicado. ¿Puedes traducir esta función a javascript? Gracias de nuevo.

Respuesta

2

Bueno ... te llevas un libro gramatical y comenzar a leer la letra por letra cadena si una de las reglas no se corresponde continuación, se añade un 1 a un contador. Dado que las reglas difieren de un idioma a otro, realmente no puedo decirte cómo hacerlo. Lo hice por rumano ... pero dudo que te ayude.

28

Traducido al javascript:

function new_count(word) { 
 
    word = word.toLowerCase();          //word.downcase! 
 
    if(word.length <= 3) { return 1; }        //return 1 if word.length <= 3 
 
    word = word.replace(/(?:[^laeiouy]es|ed|[^laeiouy]e)$/, ''); //word.sub!(/(?:[^laeiouy]es|ed|[^laeiouy]e)$/, '') 
 
    word = word.replace(/^y/, '');         //word.sub!(/^y/, '') 
 
    return word.match(/[aeiouy]{1,2}/g).length;     //word.scan(/[aeiouy]{1,2}/).size 
 
} 
 

 
console.log(new_count('she')); 
 
console.log(new_count('spain')) 
 
console.log(new_count('softball')) 
 
console.log(new_count('contagion'))

+0

¡gracias por armar esto! ¡Exactamente lo que necesitaba! –

+3

tal vez algún día @dylan lo aceptará ... – artfulhacker

+1

¿Por qué word.length <= 3 significa 1 sílaba? ¿Qué hay de "Amy"? – Kay

Cuestiones relacionadas