или можно заюзать мою старую наработку:
<script type="text/javascript" src="https://raw.github.com/devote/letJS/master/let.js"></script>
<div>Вводить разрешено только числа, любые. Дробные включительно.</div>
<input type="text" data-let-input="/^[0-9\.]+$/" data-let-template="/^(\d+\.?\d{0,2}|)$/" />
<div>Вводить разрешено только целые числа.</div>
<input type="text" data-let-input="/^[0-9]+$/" data-let-template="/^(\d*)$/" />
<div>Вводить разрешено только целые числа и запрещено число 0 в начале.</div>
<input type="text" data-let-input="/^[0-9]+$/" data-let-template="/^([1-9]\d*|)$/" />
Данная библа работает для элементов INPUT и TEXTAREA, так же для TEXTAREA есть дополнительный атрибут: data-let-length="100" указывающий максимальное количество символов ввода текста.
Так же включена обработка вставки и вырезки буфера обмена.
Лежит в Gist:
https://gist.github.com/devote/5264299