第二个字符后的连字符

时间:2018-08-13 12:16:12

标签: javascript regex

我想编写一个简单的函数来掩盖日期为12-2018(MM-YYYY)的输入,并使用如下所示的正则表达式,但是它返回的数字是每2位带一个斜杠。但是我只在前两位数字后加斜杠。我搜索了很多东西,但只得到了提示。

("122018").match(new RegExp('.{1,2}', 'g')).join("-")
("122018").match(/\d{3}(?=\d{2,3})|\d+/g).join("-")

2 个答案:

答案 0 :(得分:0)

您的正则表达式应仅在花括号中指定确切的字符数。更换时请参考捕获组。

使用'-?'要么 '。?'允许使用可选的(破折号或任何)定界符。如果不想使用分隔符,也可以将其删除。

您可能还希望在输入内容周围留有可选空格...

let inputValues = ['122018', '12-2018', '2018']
let res = rx = /(\d{2})(\d{4})/
//let res = rx = /(\d{2})-?(\d{4})/

inputValues.forEach(inputValue => {
  let m = res.exec(inputValue)
  if (m) {
    console.warn('good input: ' + inputValue)
    //console.log(m[1] + '/' + m[2])
  } else {
    console.warn('bad input: ' + inputValue)
  }
})

答案 1 :(得分:0)

date = '122018';
arr = date.match(/^(..)(.+)$/);
res = [arr[1],arr[2]].join('-');
console.log(res);