Metode exec

Metode exec veic meklēšanu virknē pēc norādītās regulārās izteiksmes. Rezultātā tiek atgriezta atrastā apakšvirkne un tās kapteņi. Katrs sekojošs šīs metodes izsaukums sāks meklēšanu no vietas, kur beidzās iepriekšējā atrastā apakšvirkne. Ja sakritība nav atrasta - tiek atgriezts null.

Sintakse

javascriptregulārā_izteiksme.test(virkne);

Piemērs

Pārbaudīsim metodes darbību:

javascriptlet str = '12 34 56';
let reg = /\d+/g;

let res1 = reg.exec(str);
console.log(res1);

let res2 = reg.exec(str);
console.log(res2);

let res3 = reg.exec(str);
console.log(res3);

let res4 = reg.exec(str);
console.log(res4);

Koda izpildes rezultāts:

javascript[12]
[34]
[56]
null

Piemērs

Izmantosim metodi ciklā:

javascriptlet str = '12 34 56';
let reg = /\d+/g;

let res;
while (res = reg.exec(str)) {
  console.log(res);
}

Koda izpildes rezultāts:

javascript[12]
[34]
[56] 

Piemērs

Atrastās sakritības var izkārtot kapteiņos:

javascriptlet str = '12 34 56';
let reg = /(\d)(\d)/g;

let res;
while (res = reg.exec(str)) {
  console.log(res);
}

Koda izpildes rezultāts:

javascript[12, 1, 2]
[34, 3, 4]
[56, 5, 6] 

Piemērs

Izmantojot īpašību lastIndex var norādīt pozīciju, no kuras jāsāk meklēšana:

javascriptlet str = '12 34 56';

let reg = /\d+/g;
reg.lastIndex = 2;

let res1 = reg.exec(str)
console.log(res1);

let res2 = reg.exec(str)
console.log(res2);

Koda izpildes rezultāts:

javascript[34]
[56]

Piemērs

Izmantojot modifikatoru y var fiksēt meklēšanas sākuma pozīciju:

javascriptlet str = '12 34 56';

let reg = /\d+/y;
reg.lastIndex = 2;

let res1 = reg.exec(str)
console.log(res1);

let res2 = reg.exec(str)
console.log(res2);

Koda izpildes rezultāts:

javascriptnull
[12]

Skatiet arī

  • metode test,
    kas pārbauda virkni
  • metode match,
    kas meklē sakritības virknē
  • metode matchAll,
    kas meklē visas sakritības virknē
  • metode replace,
    kas veic meklēšanu un aizvietošanu
  • metode search,
    kas veic meklēšanu
  • metode split,
    kas sadala virkni