Yes, I could have just added an additional replacement like this:
var string = '&index0={index}&index1={index+1}' .replace(/\{index\}/, index) .replace(/\{index\+1\}/, index + 1);
That works! But what you if for some unknown reason needed the index to start at 2, 3 or even 10? Easy, go back in and modify the code.
Or, just use some regex math that allows you to set any number. Try this demo, and change the last input string to use "{index+10}" or even "{index-5}":
The code isn't really that complicated:
var string = '&index0={index}&index1={index+1}' .replace(/\{index([-+]\d+)?\}/g, function(fullstring, match){ return index + (match ? parseInt(match, 10) : 0); });It uses a replace function to take the index and add the first regex matching string obtained from the
match
argument.But before that, we need to use a ternary operator to check if there is a match. If there isn't one, then add zero to the index.
We then need to parse the matched string into a numerical value so we can add it to the index. Then return the result.
I hope someone finds this useful :)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.