Skip to content

Instantly share code, notes, and snippets.

@sean-codes
Created January 31, 2018 18:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sean-codes/37ad27950660b6e664c5bfff538a4e22 to your computer and use it in GitHub Desktop.
Save sean-codes/37ad27950660b6e664c5bfff538a4e22 to your computer and use it in GitHub Desktop.
Finds match/position between start and end characters
var demo = {
name: 'test',
func: function() {
return 'demo'
}
}
var string = '{{demo.description}} {({testdemo})}'
function stringPlate(str, data, startSymbol, endSymbol) {
var matches = [];
do {
var matchStart = find(arguments.startSymbol, arguments.str, matchStart ?: 1);
if(matchStart) {
matchEnd = find(arguments.endSymbol, arguments.str, matchStart);
if(!matchEnd){ return matches; }
var wordStart = matchStart+arguments.startSymbol.len();
var wordLength = matchEnd-matchStart - arguments.startSymbol.len();
writeOutput(arguments.endSymbol.len())
matches.append({
word: Mid(arguments.str, wordStart, wordLength),
start: matchStart,
end: matchStart+wordLength+arguments.endSymbol.len()
});
matchStart++;
}
} while(matchStart);
return matches;
}
//dump(stringPlate(string, demo, '{', '}'));
dump(stringPlate(string, demo, '{{', '}}'));
dump(stringPlate(string, demo, '{({', '})}'));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment