Reputation: 139
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
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
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
Reputation: 67296
You can achieve it like this:
myString.substr(0, offset+1).split(' ').reverse()[0]
"Welcome Back"
["Welcome", "Back"]
["Back", "Welcome"]
"Back"
Upvotes: 2