【发布时间】:2020-12-20 13:42:38
【问题描述】:
<html>
<body>
<input type="text" keyup="_onSearchKeyUp">
</body>
</html>
我正在尝试获取一个输入框来显示带有空格分隔符的数字。像这样:1234567891 和 123 456 789 10(每 3 个符号)。
我写了这段代码:
_onSearchKeyUp: function (event) {
let value = this._getValue();
var parts = value.split(".");
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, " ");
this.$input.val(parts.join("."));
但这不是解决问题的好方法。由于价值变化,我总是以最后的标记结束,所以它是例如无法使用箭头键向后导航或仅在输入的中间进行编辑。
我该如何解决这个问题?
【问题讨论】:
-
请澄清问题。正在使用什么类型的输入框(文本/数字)?空格分隔符如何确定(每3个数字/替换点/数字中间不管多大)?
-
需要再澄清一点:输入框是否只接受数字?还是它也接受所有其他输入?就像用户输入:
Hello world 123456应该变成Hello world 123 456? -
@icecub 字段只接受数字(例如:1234567 -> 123 456 7)
-
这是我想出的:jsfiddle.net/8xm2vjkr 添加了仅用于数字输入的可选过滤器。如果你不想要它,你可以删除它。
-
@WiktorStribiżew,它有效,但不适合我。因为我需要在按键事件中添加监听器
标签: javascript jquery regex events input