Плагин маскированного ввода и регулярные выражения (для десятичных чисел)
У меня есть поле ввода текста, в которое я хочу вставить только цифры, затем запятую, а затем только две десятичные цифры.
Я пытаюсь получить это через jQuery, используя плагин Masked Input, но, похоже, не работает.
Вот что у меня есть:
<input type="text" name="cash" id="number"/>
а также
<script type="text/javascript">
$.mask.definitions['p']='[0-9]+';
$.mask.definitions['d']='[0-9]{2}';
$("#number").mask("p,d");
<script>
Но в результате получается маска с одной цифрой, запятой и чем-то, что я не могу написать (это не цифра и не символ)
_,_
Как я могу использовать регулярные выражения с этим плагином?
3 ответа
Я бы рекомендовал вам использовать jquery.maskMoney - https://github.com/plentz/jquery-maskmoney
Это довольно легко реализовать:
<input type="text" id="cash"/>
<script src="jquery.maskMoney.js"></script>
<script>
$("#cash").maskMoney("mask");
</script>
Неплохой плагин для маскировки входов через jQuery (на мой взгляд) - тот, который вы используете. И для проверки через jQuery мне удалось найти это: http://plugins.jquery.com/validate
Это плохо описано в DOCs, но из демоверсий, включенных в загрузку, вы можете разобраться. Он также имеет некоторые маскирующие функции, но, к сожалению, не так хорош, как плагин, который вы используете сейчас.
В результате ввода в замаскированное поле вы должны получить ТОЛЬКО значения, указанные в маске. Этот плагин не позволяет пользователю размещать другие символы, тогда они должны давать. Имейте в виду, что этот плагин не всегда получает правильные регулярные выражения, это может привести к ошибкам в самом pligun: / и тогда у вас есть испорченная маска из-за ошибки JS, начните смотреть на это.