javascript - 如何在每 2 个字符后插入一个字符?

标签 javascript regex

我想在每两个字符后插入一个斜杠,但仅限于前两个实例。以下正则表达式在每次出现后插入。有谁知道如何将其限制为两次出现?用户将通过输入元素输入金额。因此,如果用户输入 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/

相关文章:

regex - excel-vba正则表达式模式

javascript - 字符串中多次出现

javascript - header 和主体未对齐绘制的 Jquery.DataTable

javascript - 使用 sinon 在 Ember App Kit 中测试 Ember Simple Auth

javascript - 如何在数字中添加加号 - Bootstrap TouchSpin Spinner

javascript - Moment.js : How to get general semantic expression of time given a number of days

javascript - 从谷歌编译器中排除函数

java - 正则表达式 - 具有多个句点的文件名

javascript - 如何使用正则表达式从方括号中获取内容?

javascript - JS split() 在 IE10 及以下版本出错