Pat*_*rts -1 javascript regex replace capturing-group
我做了一个RegExp格式化传入的日期字符串,但它没有按我的用法预期工作.我希望有人可以解释为什么不:
var data = [
"m_2013_01_01",
"m_2013_02_01",
"m_2013_03_01",
"m_2013_04_01"
];
// why aren't these equivalent?
// expected
console.log(data.map(datum => datum.replace(/^m_(\d+)_(\d+)_(\d+)/g, '$1-$2-$3')));
// ???
console.log(data.map(datum => datum.replace(/^m_(?:(\d+)_?){3}$/g, '$1-$2-$3')));Run Code Online (Sandbox Code Playgroud)
在第一个正则表达式中,您使用3组:

这就是为什么你可以参考第1组,第2组和第3组.
但是,在第二个正则表达式中,您使用的是1个重复多次的组,因此第2组和第3组不存在且无法引用:

| 归档时间: |
|
| 查看次数: |
45 次 |
| 最近记录: |