【发布时间】:2021-08-20 17:46:11
【问题描述】:
我在为货币字段创建掩码时遇到了一些问题。
1- 我需要限制最多 18 个字符(包括 '.' 和 ',') 例如:999.999.999.999,99
2 - 我需要你输入多个 '.' (目前只有一个)
3 - 我希望不要发生这种情况:
因为当我键入时,它会添加“。”就在我再输入一个数字之前。
我的代码:
function onlyNumberAmount(input) {
var v = input.value;
v = v + '';
v = parseInt(v.replace(/[\D]+/g, ''));
v = v + '';
v = v.replace(/([0-9]{2})$/g, ",$1");
v = v.replace(/([0-9]{3}),([0-9]{2}$)/g, ".$1,$2");
input.value = v;
if(v == 'NaN') input.value = '';
}
<input type="text" class="form-control" id="mP0" onkeyup="onlyNumberAmount(this)">
【问题讨论】:
-
如果在 blur 上格式化值会怎样?
-
@Dani 我需要它作为键盘输入
标签: javascript jquery