В конечном счете, я хочу, чтобы маска позволяла вводить целое число или вводить десятичную/десятичную дату: разрешить 0 - 2 цифры после десятичной точки.Включить регулярное выражение в маску ввода Javascript
Действительный Входной
1
1.
1.1
1.11
111111111
111111111.
111111111.1
111111111.11
Invalid Input
a
a.
1.a
1.111
1.1111
- строка позволяет любое количество цифровых символов, но только позволяет 1 десятичный/период
- если период/десятичное существует : допускается только двухзначный знак после десятичного знака
Это регулярное выражение делает только что:
^\d*\.?([\d]){0,2}$
Теперь мне нужно применить это в качестве маски на входе. Я использую Robin Herbots' Inputmask. Я действительно борюсь за эту работу.
Я знаю, что есть псевдоним currency
, но это не работает точно так, как вам нужно. Я хочу, чтобы входной сигнал по умолчанию был пустым в фокусе/нефокусировке, если только нет ввода. currency
по умолчанию 0.00
. Я также хочу разрешить пользователю удалять все из поля, чтобы он был пустым. currency
не позволяет оставить вход пустым. Вместо этого он позволит вам покинуть поле 0.00
.
$('.moneyfield').inputmask("999", {rightAlign: true, numericInput: true});
Специальная маска должна находиться в месте «999». Я не мог понять, как использовать встроенные маски, поэтому я попытался подключить регулярное выражение к маске. До сих пор я не увенчался успехом в обеих стратегиях.
Другая попытка состояла в том, чтобы использовать псевдоним currency
, а затем просто переопределить его на то, что я хочу. Мне тоже это не удавалось. Вот определение currency
маски:
currency: {
prefix: "$ ",
groupSeparator: ",",
alias: "numeric",
placeholder: "0",
autoGroup: !0,
digits: 2,
digitsOptional: !1,
clearMaskOnLostFocus: !1
}
a down vote без объяснений? – Neil
Вы можете легко использовать атрибут 'pattern' для входов в HTML5. Это позволяет вам маскировать элементы ввода с регулярным выражением точно так, как вы хотите. Ознакомьтесь с [документацией] (http://www.w3schools.com/TAGS/att_input_pattern.asp) –
@VivekPradhan большое предложение, к сожалению, мне нужно, чтобы он работал с Safari, и эта функция не поддерживается в Safari. – Neil