2011-04-16 64 views
15

有沒有JavaScript庫計算一個單詞中的音節數?如何計數?如何計算javascript中一個單詞中的音節數?

感謝

編輯

感謝Sydenam和ZOZO有用的信息和可能的答案。

我發現了代碼Pesto at this forum,但它在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嗎? 再次感謝您。

回答

2

你可以看看這個:AJAX Syllable Calendar

+0

不是一個JavaScript解決方案本身,使用Ajax跟一個PHP腳本。 – booyaa 2011-12-20 19:29:30

2

嗯......你把語法書,並開始閱讀是否由字母串字母的規則有相匹配,然後添加一個+1到一個計數器。由於規則因語言而異,所以我不能告訴你如何去做。我爲羅馬尼亞做過......但我懷疑它會幫助你。

28

翻譯成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

謝謝你把它放在一起!正是我需要的! – 2014-05-07 05:32:43

+3

也許有一天@dylan會接受它...... – artfulhacker 2014-05-07 11:05:04

+1

爲什麼word.length <= 3意味着1個音節? 「艾米」怎麼樣? – Kay 2015-10-14 02:38:15

相關問題