<input type="text" maxlength="19" placeholder="0000 0000 0000 0000">
当用户写信用卡号码时,必须在每4个数字之间添加自动空格。我如何在JavaScript中做到这一点?
vmdwslir1#
这个例子非常简单,使用vanilla JS的“input”事件
const input = document.getElementById("credit-card-input"); input.addEventListener("input", () => input.value = formatNumber(input.value.replaceAll(" ", ""))); const formatNumber = (number) => number.split("").reduce((seed, next, index) => { if (index !== 0 && !(index % 4)) seed += " "; return seed + next; }, "");
<input id="credit-card-input" type="text" maxlength=19 placeholder="0000 0000 0000 0000">
voj3qocg2#
下面是我实现
const getMaskedValue = (value: string) => Array.from(value.replaceAll(/\D/g, '').matchAll(/(\d{0,4})(\d{0,4})(\d{0,4})(\d{0,4})/g))[0].slice(1, 5).join(' ').trim()
值应为字符串,它将只匹配数字值,任何其他字符将被删除说明:
2条答案
按热度按时间vmdwslir1#
这个例子非常简单,使用vanilla JS的“input”事件
voj3qocg2#
下面是我实现
值应为字符串,它将只匹配数字值,任何其他字符将被删除
说明:
1.正则表达式将匹配4位数组
1.我们将用' '连接数组,并修剪周围的任何空格