Можно использовать
https://github.com/RobinHerbots/jquery.inputmask используя необязательную часть в маске:
$("input").inputmask({
greedy: false,
mask: function (a) {
var mask = '+7(###)###-##-##';
var longSpace = String.fromCharCode(0x2000);
return '' + mask + '[;' + longSpace + '' + mask + '][;' + longSpace + '' + mask + ']';
},
definitions: {
'#': {
validator: "[0-9]",
cardinality: 1,
definitionSymbol: "*"
},
';': {
validator: "[;,]",
cardinality: 1,
definitionSymbol: ";"
}
},
showMaskOnHover: true,
});
Вместо обычного пробела использую длинный, так как иначе плагин почему то спотыкается на нем. =(