Вот вам быстренько
решение на jQuery (он и так на большинстве сайтов используется). На нативный js, в общем-то, очень легко переделать, если нужно.
Через css можно задать минимальную, максимальную и начальную ширину у input.
Учтено, что может быть разный размер шрифта и расстояние между буквами.