Text Analyzer

by Vladimir

HTML

<textarea></textarea><br />
<input type="button" value="test" class="test" />
<table>
    <tr>
        <td>Symbols</td>
        <td class="data-symbols"></td>
    </tr>
    <tr>
        <td>Symbols without space</td>
        <td class="data-symbols-clear"></td>
    </tr>
    <tr>
        <td>Words</td>
        <td class="data-words"></td>
    </tr>
</table>
<table class="freqs">
</table>

CSS

textarea {
    width: 100%;
    height: 300px;
}
table {
    border: 1px solid #000;
}
td {
    border: 1px solid #000;
}

JavaScript

$('.test').click(function() {
    var text = $('textarea').val().replace(/[^\d\w ]+/g," ");
    $('.data-symbols').html(text.length);
    var emptyText = text.replace(/[ ]+/g, '');
    $('.data-symbols-clear').html(emptyText.length);
    var words = text.split(' ');
    $('.data-words').html(words.length);
    
    var wordFreqs = {};
    for(var i = 0; i < words.length; i++) {
        var word = words[i].toLowerCase();
        if(word in wordFreqs) {
            wordFreqs[word]++;
        } else {
            wordFreqs[word] = 1;
        }
    }
    
    var html = "";
    for(var j in wordFreqs) {
        html += "<tr><td>" + j + "</td><td>" + wordFreqs[j] + "</td></tr>";
    }
    $('.freqs').html(html);
});