Например есть
masked-input
только в нем по умолчанию есть такой момент что шаблон
9 = любая цифра//Твой input
<input id="phone">
//Список стран
<select id="countries">
<option data-mask="+7 (nnn) nnn-nn-nn" value="ru">Россия</option>
<option data-mask="+380 (nnn) nnn-nn-nn"value="ua">Украина</option>
<option data-mask="+375 (nnn) nnn-nn-nn" value="by">Беларусь</option>
</select>
//Удаляем девятку
delete jQuery.mask.definitions['9'];
//ставим свой шаблон
//Например n = [0-9];
jQuery.mask.definitions['n'] = '[0-9]';
$('#countries').on('change', function(){
$t = $(this);
$('#phone').mask($t.data('mask'));
});
вот тут можешь взять мой
список кодов для стран