代码如下,需要匹配 '+两位数字' 并捕获 其中两个数字,或匹配 '+{三位数字}' 并捕获其中三位数字;
var a='+12+{123}+{123}+12+12+{123}'
a.replace(/\+([\d]{2})|\+{([\d]{3})}/gi,(x,y,z)=>{
console.log(x);
console.log(y);
console.log(z);
})
如果这样用'|'分割表达式的话,即使匹配的是'+{三位数字}',也会传给 第一个捕获分组(y)undefined,第二个(z)才是捕获的三位数字。
因为 多个分组 用'|' 或的话, 是从 表达式开始 按 左括号顺序,进行分组编号。
请问下 多个分组 '或' 的话,怎么 不从表达式开始 进行分组编号,而是 单独分组编号?
慕盖茨4494581
萧十郎
相关分类