Shareque
Shareque

Reputation: 139

How do I retrieve the whole word ending at specific index in JS?

I know the end offset of a word , how can I get this word length (or find the index of the last space character before this word)

In the example below, I know the offset is 11 which is "k" but I want to get whole word "Back" or till the space.

 var offset = 11;
 var myString = 'Welcome Back Here';	
 console.log(myString.charAt(offset));

Upvotes: 1

Views: 311

Answers (3)

Vipin Yadav
Vipin Yadav

Reputation: 1658

You can use something like this

var offset = 11;
var myString = 'Welcome Back Here'; 
var idx = 0;

// Iterate backword and check for space
for (var i = offset; i >= 0; i--) {
  if (myString.charCodeAt(i) == 32) {
    idx = i + 1;
    break;
  }
}

var result = myString.slice(idx, offset+1);
console.log(result)

Upvotes: 2

Thilina Koggalage
Thilina Koggalage

Reputation: 1084

Hope this is what you are looking for.

    var myString  = "Welcome Back Here";
    var offset = 11;

    function GetWordByPosition(str, position) {
        return str.substr(0, position).replace(/^.+ /g, "") + 
               str.substr(position).replace(/ .+$/g, "");
    }

    console.log(GetWordByPosition(myString , offset));

Upvotes: 4

Davin Tryon
Davin Tryon

Reputation: 67296

You can achieve it like this:

myString.substr(0, offset+1).split(' ').reverse()[0]
  1. substring - "Welcome Back"
  2. split on space - ["Welcome", "Back"]
  3. reverse - ["Back", "Welcome"]
  4. take first - "Back"

Upvotes: 2

Related Questions