Ներածություն JavaScript-ում կանոնավոր արտահայտությունների մասին
Կանոնավոր արտահայտությունները հրամաններ են բարդ որոնման և փոխարինման (կամ պարզապես որոնման) համար: Դրանք թույլ են տալիս անել շատ հետաքրքիր բաներ, բայց, դժբախտաբար, բավականին դժվար են յուրացման համար:
Գոյություն ունեն JavaScript-ի մի քանի մեթոդներ
կանոնավոր արտահայտությունների հետ աշխատելու համար: Մենք կսկսենք
ծանոթանալ դրանցին replace
մեթոդի օրինակով - դուք արդեն ծանոթ եք այս մեթոդին. այն առաջին
պարամետրով ընդունում է, թե ինչը փոխել, իսկ երկրորդով
- թե ինչով փոխել: Իսկ հենց մեթոդը կիրառվում է
այն տողի նկատմամբ, որում կատարվում է փոխարինումը.
'bab'.replace('a', '!'); // կվերադարձնի 'b!b'
Այս մեթոդի առաջին պարամետրին կարելի է փոխանցել
ոչ միայն պարզ տող, այլ կանոնավոր արտահայտություն:
Կանոնավոր արտահայտությունը հրամանների մի շարք է,
որը տեղադրված է / շեղերի ներսում: Այս
շեղերը կոչվում են սահմանազատողներ կանոնավոր
արտահայտությունների:
Ինքնին կանոնավոր արտահայտությունները բաղկացած են երկու տիպի նիշերից. նրանցից, որոնք նշանակում են ինքն իրենց և հրաման-նիշերից, որոնք կոչվում են հատուկ նիշեր:
Տառերն ու թվերը նշանակում են ինքն իրենց: Հաջորդ
օրինակում մենք կանոնավոր արտահայտության միջոցով
կփոխարինենք 'a' տառը !-ով.
'bab'.replace(/a/, '!'); // կվերադարձնի 'b!b'
Սակայն կետը հատուկ նիշ է
և նշանակում է ցանկացած նիշ: Հաջորդ
օրինակում մենք կգտնենք տողը հետևյալ կաղապարով.
տառ 'x', ապա ցանկացած նիշ, ապա
կրկին 'x' տառ.
'xax eee'.replace(/x.x/, '!'); // կվերադարձնի '! eee'
Սահմանազատողներից հետո կարելի է գրել մոդիֆիկատորներ
- հրամաններ, որոնք փոխում են կանոնավոր արտահայտության
ընդհանուր հատկությունները: Օրինակ, g մոդիֆիկատորը
միացնում է գլոբալ որոնման և փոխարինման ռեժիմը.
- առանց դրա կանոնավոր արտահայտությունը փնտրում է միայն
առաջին համընկնումը, իսկ դրա օգնությամբ - բոլոր համընկնումները:
Հաջորդ օրինակում g մոդիֆիկատորը նշված չէ
և կանոնավոր արտահայտությունը կգտնի միայն առաջին
համընկնումը.
'aab'.replace(/a/, '!'); // կվերադարձնի '!ab'
Իսկ այժմ կանոնավոր արտահայտությունը կգտնի բոլոր համընկնումները.
'aab'.replace(/a/g, '!'); // կվերադարձնի '!!b'
Տրված է տող.
let str = 'ahb acb aeb aeeb adcb axeb';
Գրեք կանոնավոր արտահայտություն, որն կգտնի
'ahb', 'acb', 'aeb'
տողերը կաղապարով. տառ 'a', ցանկացած նիշ,
'b' տառ.
Տրված է տող.
let str = 'aba aca aea abba adca abea';
Գրեք կանոնավոր արտահայտություն, որն կգտնի
'abba', 'adca', 'abea'
տողերը կաղապարով. տառ 'a', 2
ցանկացած նիշ, 'a' տառ.
Տրված է տող.
let str = 'aba aca aea abba adca abea';
Գրեք կանոնավոր արտահայտություն, որն կգտնի
'abba' և 'abea' տողերը՝ չգրավելով
'adca' տողը.