Если я правильно понимаю вопрос, то вы решили объять необъятное: сделать универсальную маску на все случаи жизни. Сомневаюсь, что это облегчит вам жизнь, тем более, что уже есть много достаточно универсальных и удобных готовых решений, но раз вы спрашиваете, вам это зачем-то нужно)
Я бы порекомендовал использовать первый вариант с 2 атрибутами. Причина - это самый естественный и универсальный вариант. Вы один раз убьете уйму времени на написание и отладку, но потом будет достаточно передать шаблон и расшифровку. Второй вариант предполагает постоянное написание регулярок, что делает идею почти бесполезной. Другие варианты тоже не лучше. Например, использовать фиксированный набор управляющих символов и классов - это по сути все сведет к все тому же написанию регулярки вручную, которое присутствует в js нативно)