JavaScript音节计数器-每行计数 现在的

JavaScript音节计数器-每行计数 现在的,javascript,nlp,Javascript,Nlp,我一直致力于: 获取textarea 1的值 计算文本区域1中的音节数 在文本区域2中显示结果 每次编辑textarea 1的值时更新计数 充当函数(如果需要,可以在多个实例中运行) 当前代码的示例函数 输入(文本区域1) 结果(文本区域2) 现行代码 目标 我希望此脚本能够: 按每行计算textarea 1的音节数:可能是在有换行符的地方拆分textarea 1值,例如.split('\n') 输出结果,显示每行计数的音节总数 所需代码的示例函数 输入(文本区域1) 结果(文本区域

我一直致力于:

  • 获取textarea 1的值
  • 计算文本区域1中的音节数
  • 在文本区域2中显示结果
  • 每次编辑textarea 1的值时更新计数
  • 充当函数(如果需要,可以在多个实例中运行)
当前代码的示例函数 输入(文本区域1)

结果(文本区域2)

现行代码


目标 我希望此脚本能够:

  • 按每行计算textarea 1的音节数:可能是在有换行符的地方拆分textarea 1值,例如
    .split('\n')
  • 输出结果,显示每行计数的音节总数
所需代码的示例函数 输入(文本区域1)

结果(文本区域2)

问题 对于如何做到这一点,我非常困惑,非常感谢任何帮助或JSFIDLE展示如何使用现有代码来实现这一点


笔记
对于任何可能对音节计数函数代码本身感兴趣的人:它不是100%准确,在某些单词上失败,但给出了一个很好的总体概念。

试试这个,告诉我你是否需要它

标注:

我创建了一个数组,该数组将这些行存储起来
var arrayOfLines=$(“[name=set_u“+$input+”]).val().match(/[^\r\n]+/g)

然后循环遍历该数组,并完全按照您之前所做的操作,但在每个数组条目上执行。然后将结果存储在tempArr中,并显示tempArr结果

函数$count\u有多少个音节($input){
$(“[name=set\+$input+”]).keyup(函数(){
var arrayOfLines=$(“[name=set\+$input+”]).val().match(/[^\r\n]+/g);
var tempArr=[];
var$内容;
变异词;
var$u计数;
var$结果;
对于(变量i=0;i非常感谢你!我真的很感激!
i would appreciate
any help
at all
11
i would appreciate
any help
at all
6
3
2
function $count_how_many_syllables($input) {
    $("[name=set_" + $input + "]").keyup(function () {

    var arrayOfLines = $("[name=set_" + $input + "]").val().match(/[^\r\n]+/g);
    var tempArr = [];
    var $content;
    var word;
    var $syllable_count;
    var $result;

    for(var i = 0; i < arrayOfLines.length; i++){
        $content = arrayOfLines[i];
        word = $content;
        word = word.toLowerCase();
        if (word.length <= 3) {
            word = 1;
        }
        if (word.length === 0) {
           return 0;
        }
        word = word.replace(/(?:[^laeiouy]es|ed|[^laeiouy]e)$/, '')
            .replace(/^y/, '')
            .match(/[aeiouy]{1,2}/g).length;
        $syllable_count = word;
        $result = $syllable_count;
        tempArr.push($result);
    }

    $("[name=set_" + $input + "_syllable_count]").val(tempArr);

    });
}

(function($) {
    $count_how_many_syllables("a");
})(jQuery);