根据用户的输入计算单词数

时间:2015-02-23 03:30:18

标签: javascript jquery

我想要一个用户可以放入文本的文本区域;基本上当用户点击按钮时,它应该计算单词的数量,最短单词的长度和单词;还有单词的平均长度,以及单词长度的RMS(均方根)。文本区域将有预加载的文本,但是当用户点击文本区域时它应该清除文本区域他们可以放任何他们想要的东西这是我到目前为止所得到的:

    $(document).ready(function () {

        $("#btnCalculate").click(function(){
            var text = $("#txtInput").val();
    text = text.replace(/\.|,|;/g, "");   //eliminate punctuation  
    //the g makes it a global replace not a replacement of the first occurrence 

    text = text.toLowerCase();           //put all text into lower case 

    text = text.replace(/\bi\b/g, "I");
    //  \b means word boundary so \bi\b means an i by iteslf which should be I 
    text = text.replace(/\s+/g, " ");  //replace white space with a simple space

    if (text.charAt(text.length - 1) == " ") {
        text = text.substring(0, text.length - 1);   // if space at end  get rid of
    }


    //longest word count
    function longestWord(str) {
        var words = str.replace(/[^A-Za-z\s]/g, "").split(" ");
        var wordsByDescendingLength = words.sort(function (a, b) {
            return b.length - a.length;
        });
        return wordsByDescendingLength[0];
    }
        });
    //shortest word
    });

1 个答案:

答案 0 :(得分:2)

String.prototype.countWords = function(){
  return this.split(/\s+/).length;
}

这应该准确地做你想要的。

以下将删除标点符号:

String.prototype.countWords = function(){
  return this.split(/\s+\b/).length;
}
呃,抱歉在我的手机上。这将计算单词数。当我到笔记本电脑时,我会更新答案。