user3423117
user3423117

Reputation: 11

Using String.substring for Words

I have the following example where I am putting a limit on the characters entered in the Textarea:

var tlength = $(this).val().length;
    $(this).val($(this).val().substring(0, maxchars));
    var tlength = $(this).val().length;
    remain = maxchars - parseInt(tlength);
    $('#remain').text(remain);

where maxchars is the number of characters. How can I change this example to work with words, so instead of restricting chars, I restrict to a number of words.

http://jsfiddle.net/PzESw/106/

Upvotes: 1

Views: 72

Answers (2)

Paul Kotets
Paul Kotets

Reputation: 209

I think you need to change one string of your code to something like this:

$(this).val($(this).val().split(' ').slice(0, maxchars).join(' '));

This code splits text in an array of words (you may need another workflow), removes extra words and joins them back

Upvotes: 3

Afzaal Ahmad Zeeshan
Afzaal Ahmad Zeeshan

Reputation: 15860

A simple way would be to converting the full String into array of words.

For example you're having a String as:

var words = "Hi, My name is Afzaal Ahmad Zeeshan.";
var arrayOfWords = words.split(" "); // split at a white space

Now, you'll have an array of words. Loop it using

for (i = 0; i < words.length; i++) {
  /* write them all, or limit them in the for loop! */
}

This way, you can write the number of words in the document. Instead of characters!

Upvotes: 0

Related Questions