I've got a simple spec for defining character sets, ranges, or wildcards. I'd like to take the string and appropriately create an array based on these rules. I have a solution but I'm sure there is a better way!Single characters may be usedSets and ranges are enclosed in brackets []Sets are comma separated, [1,3,S]Ranges are hyphenated, [1-3]Sets and ranges can be combined, [1-3,7,9-10,S]Wildcard character is - and not enclosed in bracketsStrings can contain the following characters are A-Z 0-9 - .Example inputs and expected outputs'ABC' outputs ['A', 'B', 'C']'S[1-2]-' outputs ['S', '1-2', '-']'S[1-2]2.0[0-9][1,3,7]S' outputs ['S', '1-2', '2', '.', '0', '0-9', '1,3,7', 'S']'S[1-2,7]' outputs ['S', '1-2,7']My implementation:function stringToArray(code) {    var exploded = code.split(''),            charGroups = [],            tempGroup = '',            inGroup = false;    while (exploded.length > 0) {        var cur = exploded.shift();        if (cur === '[') {            inGroup = true;            continue;        }        if (inGroup) {            if (cur === ']') {                inGroup = false;                charGroups.push(tempGroup);                tempGroup = '';            } else {                tempGroup += cur;            }        }        if (!inGroup) {            if (cur !== ',' && cur !== '[' && cur !== ']') {                charGroups.push(cur);            }        }    }    return charGroups;}Demo fiddle here: http://jsfiddle.net/3q25eps3/
Transform a string into an array based on grouping rules
javascript;strings;array