Как вычислить количество слогов в слове в javascript?
Есть ли библиотека javascript для подсчета количества слогов в слове? Как считать?
Спасибо
Edit
Спасибо Sydenam и zozo за полезную информацию и возможные ответы.
Я нашел код Pesto на этом форуме, но он находится в Ruby. Ниже приведена его краткая версия:
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
Это кажется коротким, но сложным. Можете ли вы перевести эту функцию в javascript?
Еще раз спасибо.
Ответы
Ответ 1
Переведено на 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'))
Ответ 2
Вы можете проверить это: AJAX Syllable Calendar
Ответ 3
Хорошо... вы берете грамматическую книгу и начинаете читать строчную букву буквой, если одно из правил соответствует, то вы добавляете +1 к счетчику. Поскольку правила отличаются от языка к языку, я не могу сказать вам, как это сделать. Я сделал это для румын... но я сомневаюсь, что это поможет вам.