JavaScript регур ифодалардаги белгилар тўплами
Белгилар гуруҳлари \d ва \w жуда
мусбат эмас. Ҳатто барча ҳарфларни, лекин рақамларни эмас топиш -
каби содда вазифа ҳам улар томонидан бажарилмайди. Бундай вазифалар учун
'ёки' операциясини ифодаловчи қавс ишлатиш керак.
Қавс ичида кўрсатилганлардан битта белгини алмаштиради.
Масалан, мана шундай: /x[abc]x/ - биз четларида икс ҳарфлари,
ичида эса - битта белги: ёки 'a', ёки 'b',
ёки 'c' бўлиши керак, деб айтамиз.
Қавсдан кейин такрорлаш операторларини ёзиш мумкин.
Масалан, мана шундай: /x[abc]+x/
- биз икслар ичида 'a', 'b'
ва 'c' белгиларининг ҳар қандай миқдори - ҳар қандай комбинацияда бўлиши мумкин, деб айтамиз.
Фақат белгиларни рўйхатлаш билан чекланмасдан, белгилар гуруҳларини
ҳам яратиш мумкин, икки белги ўртасига чизиқча қўйиш орқали.
Масалан, мана шундай: [a-d] -
биз 'a' дан 'd' гача барча белгиларни оламиз.
Келгила, мисолларда кўрамиз.
Мисол
Ушбу мисолда қидируш намунаси мана шундай кўринишда:
икслар ўртасида 'a'
дан 'z' гача ҳар қандай ҳарф:
let str = 'xax xbx xcx x@x';
let res = str.replace(/x[a-z]x/g, '!');
Натижада ўзгарувчига куйидагилар ёзилади:
'! ! ! x@x'
Мисол
Ушбу мисолда қидируш намунаси мана шундай кўринишда:
икслар ўртасида 'a'
дан 'k' гача ҳар қандай ҳарф:
let str = 'xax xbx xmx x@x';
let res = str.replace(/x[a-k]x/g, '!');
Натижада ўзгарувчига куйидагилар ёзилади:
'! ! xmx x@x'
Мисол
Ушбу мисолда қидируш намунаси мана шундай кўринишда:
икслар ўртасида 'A'
дан 'Z' гача ҳар қандай ҳарф:
let str = 'xax xBx xcx x@x';
let res = str.replace(/x[A-Z]x/g, '!');
Натижада ўзгарувчига куйидагилар ёзилади:
'xax ! xcx x@x'
Мисол
Ушбу мисолда қидируш намунаси мана шундай кўринишда:
икслар ўртасида 0 дан 9 гача ҳар қандай рақам:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[0-9]x/g, '!');
Натижада ўзгарувчига куйидагилар ёзилади:
'xax ! ! ! x@x'
Мисол
Ушбу мисолда қидируш намунаси мана шундай кўринишда:
икслар ўртасида 3 дан 7 гача ҳар қандай рақам:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[3-7]x/g, '!');
Натижада ўзгарувчига куйидагилар ёзилади:
'xax x1x ! ! x@x'
Мисол
Ушбу мисолда қидируш намунаси мана шундай кўринишда:
икслар ўртасида 'a'
дан 'z' гача ҳар қандай ҳарф ёки 1 дан 9 гача рақам:
let str = 'xax x1x x3x x5x x@x';
let res = str.replace(/x[a-z1-9]x/g, '!');
Натижада ўзгарувчига куйидагилар ёзилади:
'! ! ! ! x@x'
Мисол
Ушбу мисолда қидируш намунаси мана шундай кўринишда:
икслар ўртасида 'a'
дан 'z' гача ҳар қандай ҳарф ёки 'A' дан
'Z' гача ҳар қандай ҳарф:
let str = 'xax xBx xcx x5x x@x';
let res = str.replace(/x[a-zA-Z]x/g, '!');
Натижада ўзгарувчига куйидагилар ёзилади:
'! ! ! x5x x@x'
Мисол
Ушбу мисолда қидируш намунаси мана шундай кўринишда:
икслар ўртасида 'a'
дан 'z' гача ҳар қандай ҳарф ёки 1, 2 рақамлари:
let str = 'xax xbx x1x x2x x3x';
let res = str.replace(/x[a-z12]x/g, '!');
Натижада ўзгарувчига куйидагилар ёзилади:
'! ! ! ! x3x'
Мисол
Ушбу мисолда қидируш намунаси мана шундай кўринишда:
икслар ўртасида 'a' дан 'z' гача ҳарфлар
1 ва кўпроқ миқдорда:
let str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]+x/g, '!');
Натижада ўзгарувчига куйидагилар ёзилади:
'xx ! ! ! x123x xa3x'
Мисол
Келгила, ҳарфлар миқдори нол ҳам бўлиши мумкин:
let str = 'xx xabesx xaadx x123x xa3x';
let res = str.replace(/x[a-z]*x/g, '!');
Натижада ўзгарувчига куйидагилар ёзилади:
'! ! ! ! x123x xa3x'
Амалий машқлар
Берилган сатр:
let str = 'aba aea aca aza axa';
Қуйидаги намуна бўйича топадиган регур ифодани ёзинг:
четларида 'a' ҳарфи туради,
улар ўртасида эса - 'b', 'e'
ёки 'x' ҳарфи.
Берилган сатр:
let str = 'a1a a3a a7a a9a aba';
Қуйидаги намуна бўйича топадиган регур ифодани ёзинг:
четларида 'a' ҳарфи туради,
улар ўртасида эса - 3-дан 6-гача рақам.
Берилган сатр:
let str = 'aba aea afa aha aga';
Қуйидаги намуна бўйича топадиган регур ифодани ёзинг:
четларида 'a' ҳарфи туради,
улар ўртасида эса - a дан g гача ҳарф.
Берилган сатр:
let str = 'aba aea afa aha aga';
Қуйидаги намуна бўйича топадиган регур ифодани ёзинг:
четларида 'a' ҳарфи туради,
улар ўртасида эса - a дан f гача ва j дан z гача ҳарф.
Берилган сатр:
let str = 'aAa aea aEa aJa a3a';
Қуйидаги намуна бўйича топадиган регур ифодани ёзинг:
четларида 'a' ҳарфи туради,
улар ўртасида эса - a дан f гача ва A дан D гача ҳарф.
Берилган сатр:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Қуйидаги намуна бўйича топадиган регур ифодани ёзинг:
четларида 'a' ҳарфи туради,
улар ўртасида эса - кичик лотин ҳарфлари,
бошқаларига тегмасдан.
Берилган сатр:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Қуйидаги намуна бўйича топадиган регур ифодани ёзинг:
четларида 'a' ҳарфи туради,
улар ўртасида эса - кичик ва катта лотин
ҳарфлари, бошқаларига тегмасдан.
Берилган сатр:
let str = 'aAXa aeffa aGha aza ax23a a3sSa';
Қуйидаги намуна бўйича топадиган регур ифодани ёзинг:
четларида 'a' ҳарфи туради,
улар ўртасида эса - кичик лотин ҳарфлари
ва рақамлар, бошқаларига тегмасдан.