I've built a JavaScript function returning the index of the nth occurrence of a substring in a string.
$(document).ready(function() {
var containingString = '.this.that.';
subString = '.';
var index = GetIndexOfSubstring(containingString, subString, 2);
});
function GetIndexOfSubstring(containingString, subString, occurrenceNumberOfSubString)
{
tokens = containingString.split(subString);
var numberOfSubStrings = tokens.length - 1;
if (occurrenceNumberOfSubString > numberOfSubStrings)
return "Error";
var index = 0 + occurrenceNumberOfSubString - 1;
for(var c = 0; c < occurrenceNumberOfSubString; c++)
{
var i = containingString.indexOf(subString);
var sub = containingString.substr(i + 1);
containingString = sub;
index += i;
}
return index;
}
As far as I can see, the function works correctly. Is there is an easier way to accomplish the goal? Also, can the function be improved?