Плагин маскированного ввода и регулярные выражения (для десятичных чисел)

У меня есть поле ввода текста, в которое я хочу вставить только цифры, затем запятую, а затем только две десятичные цифры.

Я пытаюсь получить это через 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>

Попробуй это,

$("#number").mask("99,99");

Рабочая Демо

Неплохой плагин для маскировки входов через jQuery (на мой взгляд) - тот, который вы используете. И для проверки через jQuery мне удалось найти это: http://plugins.jquery.com/validate

Это плохо описано в DOCs, но из демоверсий, включенных в загрузку, вы можете разобраться. Он также имеет некоторые маскирующие функции, но, к сожалению, не так хорош, как плагин, который вы используете сейчас.

В результате ввода в замаскированное поле вы должны получить ТОЛЬКО значения, указанные в маске. Этот плагин не позволяет пользователю размещать другие символы, тогда они должны давать. Имейте в виду, что этот плагин не всегда получает правильные регулярные выражения, это может привести к ошибкам в самом pligun: / и тогда у вас есть испорченная маска из-за ошибки JS, начните смотреть на это.

Другие вопросы по тегам