Ҷавоб дода нашавандаи қавсҳо дар регекси JavaScript
Қавсҳои ( ) ду вазифаро иҷро мекунанд -
гурӯҳбандии аломатҳо ва вазифаи карман. Ва
чӣ кор кардан, агар ба мо гурӯҳбандӣ лозим бошад,
вале ба карман гузошта нашавад?
Барои ҳалли чунин мушкилият қавсҳои махсуси
ҷавоб дода нашаванда (?: )
- онҳо гурӯҳбандӣ мекунанд, вале ба карман намегузоранд.
Намуна
Дар намунаи оянда қавсҳои якум барои мо барои гурӯҳбандӣ лозим аст, ва қавсҳои дуюм - барои карман. Аммо, ҳарду қавсҳо маълумотро дар карман нигоҳ медоранд:
let str = 'abab123';
let res = str.match(/(ab)+([1-9]+)/);
Дар натиҷа дар карманҳои мо чунин хоҳад буд:
console.log(res[0]); // 'abab123'-ро хориҷ мекунад
console.log(res[1]); // 'ab'-ро хориҷ мекунад
console.log(res[2]); // '123'-ро хориҷ мекунад
Намуна
Биёед ҳамчунон кунем, ки ҷуфти якуми қавсҳо танҳо гурӯҳбандӣ кунад, вале ба карман нагузорад:
let str = 'abab123';
let res = str.match(/(?:ab)+([1-9]+)/);
Дар натиҷа дар кармани якум рақами мо хоҳад буд:
console.log(res[1]); // '123'-ро хориҷ мекунад