iegorov
9/15/2014 - 10:26 AM

Создает массив объектов с информацией о символах маски. Вход: "DDDD[-]DD[-]DD". Выход: [{ char: "-", pos: 5, posInVal: 4 }, { char: "-", p

Создает массив объектов с информацией о символах маски. Вход: "DDDD[-]DD[-]DD". Выход: [{ char: "-", pos: 5, posInVal: 4 }, { char: "-", pos: 10, posInVal: 7 }]

/**
 * Создает массив объектов с информацией о символах маски
 * @param {parameter type}  
 * @return {return type}
 */
function createMapMaskSymbols(mask){
	var countBracket = 0;
	var inBracket = false;
	var mapMasks = _.map(mask, function(val, idx){
		if(val === '[' || val === '{'){
			countBracket++;
			inBracket = true;
			return;
		}
		if(val === ']' || val === '}'){
			countBracket++;
			inBracket = false;
		}
		if(inBracket){
			return {
				char: val,
				// позиция в маске
				pos: idx,
				// позиция в значении после применения маски
				posInVal: idx - countBracket
			};
		}
	});
	return _.compact(mapMasks);
}