将正则表达式转换为 Javascript 输入掩码
Turn Regular Expression into Javascript input mask
最终我想要一个只允许输入整数的掩码,或者如果输入 decimal/period:允许小数点后 0 - 2 位数字。
有效输入
1
1.
1.1
1.11
111111111
111111111.
111111111.1
111111111.11
输入无效
a
a.
1.a
1.111
1.1111
- 字符串允许任意数量的数字字符,但只允许 1 个 decimal/period
- 如果 period/decimal 存在:只允许小数点后 2 位字符
这个正则表达式就是这样做的:
^\d*\.?([\d]){0,2}$
现在我需要将其作为掩码应用到输入中。我正在使用 Robin Herbots' Inputmask。我真的很难完成这项工作。
我知道有一个别名 currency
,但它不能完全按预期工作。我想要的是在 focus/unfocus 上输入默认为空白,除非有输入。 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
}
我明白了。您只需要覆盖 currency
别名中的几个字段:
$('.money_field').inputmask({alias: 'currency', rightAlign: true, placeholder: "", prefix: '', autoGroup: false, digitsOptional: true});
最终我想要一个只允许输入整数的掩码,或者如果输入 decimal/period:允许小数点后 0 - 2 位数字。
有效输入
1
1.
1.1
1.11
111111111
111111111.
111111111.1
111111111.11
输入无效
a
a.
1.a
1.111
1.1111
- 字符串允许任意数量的数字字符,但只允许 1 个 decimal/period
- 如果 period/decimal 存在:只允许小数点后 2 位字符
这个正则表达式就是这样做的:
^\d*\.?([\d]){0,2}$
现在我需要将其作为掩码应用到输入中。我正在使用 Robin Herbots' Inputmask。我真的很难完成这项工作。
我知道有一个别名 currency
,但它不能完全按预期工作。我想要的是在 focus/unfocus 上输入默认为空白,除非有输入。 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
}
我明白了。您只需要覆盖 currency
别名中的几个字段:
$('.money_field').inputmask({alias: 'currency', rightAlign: true, placeholder: "", prefix: '', autoGroup: false, digitsOptional: true});