Read named parts from a matched code.

capture-groups Parentheses create capture groups. After a match, group `1` and group `2` hold the parts matched by the first and second parentheses.

Capture Groups

code
capture_groups.js
Replay: real traced execution (multi-file project)
const code = "AB-12";
const groups = /^([A-Z]+)-(\d+)$/.exec(code);
let prefix = "none";
let number = "none";

if (groups) {
  prefix = groups[1];
  number = groups[2];
}

console.log("code=" + code);
console.log("prefix=" + prefix);
console.log("number=" + number);
const code = "CD-34";
const groups = /^([A-Z]+)-(\d+)$/.exec(code);
let prefix = "none";
let number = "none";

if (groups) {
  prefix = groups[1];
  number = groups[2];
}

console.log("code=" + code);
console.log("prefix=" + prefix);
console.log("number=" + number);
const code = "bad";
const groups = /^([A-Z]+)-(\d+)$/.exec(code);
let prefix = "none";
let number = "none";

if (groups) {
  prefix = groups[1];
  number = groups[2];
}

console.log("code=" + code);
console.log("prefix=" + prefix);
console.log("number=" + number);
  1. code ← AB-12, groups ← AB-12,AB,12, prefix ← none, number ← none

    1const code→ AB-12 = "AB-12"; //@code="CD-34", "bad"2const groups→ AB-12,AB,12 = /^([A-Z]+)-(\d+)$/.exec(codeAB-12);3let prefix→ none = "none";4let number→ none = "none";
  2. if (groups)

    3let prefix = "none";4let number = "none";56if (groupsAB-12,AB,12) {7  prefix = groups[1]AB;8  number = groups[2]12;9}
  3. console.log("code=" + code);

    8  number = groups[2];9}1011console.log("code=" + codeAB-12);12console.log("prefix=" + prefixAB);13console.log("number=" + number12);
    outputcode=AB-12
    prefix=AB
    number=12
  1. code ← CD-34, groups ← CD-34,CD,34, prefix ← none, number ← none

    1const code→ CD-34 = "CD-34";2const groups→ CD-34,CD,34 = /^([A-Z]+)-(\d+)$/.exec(codeCD-34);3let prefix→ none = "none";4let number→ none = "none";
  2. if (groups)

    3let prefix = "none";4let number = "none";56if (groupsCD-34,CD,34) {7  prefix = groups[1]CD;8  number = groups[2]34;9}
  3. console.log("code=" + code);

    8  number = groups[2];9}1011console.log("code=" + codeCD-34);12console.log("prefix=" + prefixCD);13console.log("number=" + number34);
    outputcode=CD-34
    prefix=CD
    number=34
  1. code ← bad, groups ← null, prefix ← none, number ← none

    1const code→ bad = "bad";2const groups→ null = /^([A-Z]+)-(\d+)$/.exec(codebad);3let prefix→ none = "none";4let number→ none = "none";56if (groups) {7  prefix = groups[1];8  number = groups[2];9}1011console.log("code=" + codebad);12console.log("prefix=" + prefixnone);13console.log("number=" + numbernone);
    outputcode=bad
    prefix=none
    number=none