Есть входящая строка, представляет собой маску номера телефона:
+1({/[1-9]/}00) 000 000{/[1-9]/}
Нужно перебрать строку таким образом, чтобы получился массив:
['+', '1', '(', /[1-9]/, /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, ' ', /\d/, /\d/, /\d/, /[1-9]/]
0 преобразует в регулярку /\d/
Всё что между символами "{}" сохранял "как есть", но группировал как 1 элемент массива (при этом фигурные скобки не сохраняются).
Всё остальное тоже сохранял как есть.
Вот что пока есть:
mask = '+1({/[1-9]/}00) 000 000{/[1-9]/}';
var oldMask = mask.split('');
newMask = [];
oldMask.forEach(function(char) {
switch( char ) {
case '0':
newMask.push( /\d/ );
break;
default:
newMask.push( char );
}
});
Проблема именно с парсингом того, что между фигурными скобками. Важно. Маска может быть и совершенно иной, не только номер телефона.