⊗jsSpREESCh 99 of 294 menu

JavaScript-ի ռեգուլյար արտահայտություններում հատուկ նիշերի էկրանավորում

Ենթադրենք, որ մենք ուզում ենք, որ հատուկ նիշը նշանակի ինքն իրեն: Դրա համար այն պետք է էկրանավորել հակադարձ շեղատողի օգնությամբ: Եկեք նայենք օրինակներով:

Օրինակ

Հաջորդ օրինակում ռեգուլյար արտահայտության հեղինակը ուզում էր, որ որոնման ձևանմուշն ունենա այսպիսի տեսք՝ տառ 'a', ապա պլյուս '+', ապա տառ 'x': Սակայն, կոդի հեղինակը չէկրանավորեց '+' նիշը, և այդ պատճառով որոնման ձևանմուշն իրականում ունի այս տեսքը՝ տառ 'a' մեկ կամ ավելի անգամ, ապա տառ 'x':

let str = 'a+x ax aax aaax'; let res = str.replace(/a+x/g, '!');

Արդյունքում փոփոխականի մեջ կգրվի հետևյալը՝

'a+x ! ! !'

Օրինակ

Հիմա հեղինակը էկրանավորել է պլյուսը հակադարձ շեղատողով: Այժմ որոնման ձևանմուշն ունի այն տեսքը, որը պետք է՝ տառ 'a', ապա պլյուս '+', ապա տառ 'x':

let str = 'a+x ax aax aaax'; let res = str.replace(/a\+x/g, '!');

Արդյունքում փոփոխականի մեջ կգրվի հետևյալը՝

'! ax aax aaax'

Օրինակ

Այս օրինակում ձևանմուշն ունի այս տեսքը՝ տառ 'a', ապա կետ '.', ապա տառ 'x':

let str = 'a.x abx azx'; let res = str.replace(/a\.x/g, '!');

Արդյունքում փոփոխականի մեջ կգրվի հետևյալը՝

'! abx azx'

Օրինակ

Հաջորդ օրինակում հեղինակը մոռացել է էկրանավորել կետը, և ռեգուլյար արտահայտությանը համապատասխանել են բոլոր ենթատողերը, քանի որ չէկրանավորված կետը նշանակում է ցանկացած նիշ:

let str = 'a.x abx azx'; let res = str.replace(/a.x/g, '!');

Արդյունքում փոփոխականի մեջ կգրվի հետևյալը՝

'! ! !'

Դիտողություն

Ուշադրություն դարձրեք, որ եթե մոռանաք հակադարձ շեղատողը կետի համար (երբ այն պետք է նշանակի ինքն իրեն) - դա կարելի է նույնիսկ չնկատել.

'a.x'.replace(/a.x/g, '!'); // կվերադարձնի '!', ինչպես մենք էլ ուզում էինք

Տեսողականորեն աշխատում է ճիշտ (քանի որ կետը նշանակում է ցանկացած նիշ, այդ թվում նաև սովորական կետ '.'): Բայց եթե փոխենք այն տողը, որտեղ կատարվում են փոխարինումները - մենք կտեսնենք մեր սխալը.

'a.x abx azx'.replace(/a.x/g, '!'); // կվերադարձնի '! ! !', իսկ սպասվում էր '! abx azx'

Հատուկ և սովորական նիշերի ցանկ

Եթե էկրանավորեք սովորական նիշ - ոչ մի սարսափելի բան չի պատահի - այն ամեն դեպքում կնշանակի ինքն իրեն: Բացառություն են կազմում թվանշանները, դրանք հնարավոր չէ էկրանավորել:

Հաճախ առաջանում է կասկած, արդյոք տվյալ նիշը հատուկ է: Ոմանք հասնում են նրան, որ էկրանավորում են բոլոր կասկածելի նիշերը անընդմեջ: Սակայն, սա վատ պրակտիկա է (աղտոտում է ռեգուլյար արտահայտությունը հակադարձ շեղատողներով):

Հատուկ նիշեր են՝ $ ^ . * + ? \ / {} [] () |

Չեն հատուկ նիշեր՝ @ : , ' " ; - _ = < > % # ~ `& !

Գործնական առաջադրանքներ

Տրված է տողը.

let str = 'a.a aba aea';

Գրեք ռեգուլյար արտահայտություն, որը կգտնի 'a.a' տողը՝ չբռնելով մնացածը:

Տրված է տողը.

let str = '2+3 223 2223';

Գրեք ռեգուլյար արտահայտություն, որը կգտնի '2+3' տողը՝ չբռնելով մնացածը:

Տրված է տողը.

let str = '23 2+3 2++3 2+++3 345 567';

Գրեք ռեգուլյար արտահայտություն, որը կգտնի '2+3', '2++3', '2+++3' տողերը՝ չբռնելով մնացածը (+ կարող է լինել ցանկացած քանակություն):

Տրված է տողը.

let str = '23 2+3 2++3 2+++3 445 677';

Գրեք ռեգուլյար արտահայտություն, որը կգտնի '23', '2+3', '2++3', '2+++3' տողերը՝ չբռնելով մնացածը:

Տրված է տողը.

let str = '*+ *q+ *qq+ *qqq+ *qqq qqq+';

Գրեք ռեգուլյար արտահայտություն, որը կգտնի '*q+', '*qq+', '*qqq+' տողերը՝ չբռնելով մնացածը:

Տրված է տողը.

let str = '[abc] {abc} abc (abc) [abc]';

Գրեք ռեգուլյար արտահայտություն, որը կգտնի քառակուսի փակագծերում գտնվող տողերը և կփոխարինի դրանք '!'-ով:

Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել