我想在每两个字符后插入一个斜杠,但仅限于前两个实例。以下正则表达式在每次出现后插入。有谁知道如何将其限制为两次出现?用户将通过输入元素输入金额。因此,如果用户输入 30032017
,结果将类似于以下内容。
function insertSlash(val) {
return val.match(new RegExp('.{1,2}', 'g')).join("/");
}
insertSlash(input);
因此对于第一个字符,用户将输入 3
。下一次输入时,它将是 0
。然后应该插入一个斜杠。
这应该返回 30/03/2017
。
最佳答案
有几种方法可以做到这一点,您可以使用专门针对这种类型的字符串格式化的正则表达式
function insertSlash(val) {
return val.replace(/^(\d{2})(\d{2})/, '$1/$2/');
}
console.log(insertSlash('30032017'));
或者您可以使用简单的替换函数来跟踪替换计数
function insertSlash(val) {
var count = 2;
var i = 0;
return val.replace(/(\d{2})/g, function(match, capture) {
return (i++ < count) ? capture + '/' : capture;
});
}
console.log(insertSlash('30032017'));
编辑
您似乎已经编辑了您的问题,以包含在用户键入时发生这种情况的需要。有一些 mask 插件可以考虑插入符号的放置、占位符信息,并且可能值得您花时间检查其中的一些插件。这是one that I found它有一个 react JS 组件。我不能保证它,我从未使用过它,但它是一个值得一看的想法。
关于javascript - 如何在每 2 个字符后插入一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43121910/