2015-02-23 2 views
0

Я пытаюсь создать текстовую область, в которую пользователь может ввести текст; в основном, когда пользователь нажимает кнопку, он должен вычислять количество слов, длину кратчайшего слова и слово; также средняя длина слов и 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 
    }); 

ответ

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

это должно точно делать то, что вы ищете.

следующие лишит вещи, как знаки препинания:

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

эр, жаль на моем телефоне. это будет подсчитывать количество слов. Я обновлю ответ, когда попаду на ноутбук.

+0

Спасибо, я ценю это – braum

Смежные вопросы