⊗jsSpREESCh 99 of 294 menu

Speciālo rakstzīmju ekrānēšana JavaScript regulārajās izteiksmēs

Pieņemsim, ka mēs vēlamies, lai speciālā rakstzīme apzīmētu pati sevi. Lai to izdarītu, tā ir jāekrānē, izmantojot apgriezto slīpsvītru. Apskatīsim to ar piemēriem.

Piemērs

Nākamajā piemērā regulārās izteiksmes autors vēlējās, lai meklēšanas šablons izskatītos šādi: burts 'a', tad plus zīme '+', tad burts 'x'. Tomēr, koda autors neizmantojis ekrānēšanu simbolam '+', un tāpēc meklēšanas šablons patiesībā izskatās šādi: burts 'a' viens vai vairāk reižu, tad burts 'x':

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

Rezultātā mainīgajā tiks ierakstīts sekojošais:

'a+x ! ! !'

Piemērs

Bet šajā piemērā autors ir ekrānējis plus zīmi ar apgriezto slīpsvītru. Tagad meklēšanas šablons izskatās tieši tā, kā vajag: burts 'a', tad plus zīme '+', tad burts 'x'.

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

Rezultātā mainīgajā tiks ierakstīts sekojošais:

'! ax aax aaax'

Piemērs

Šajā piemērā šablons izskatās šādi: burts 'a', tad punkts '.', tad burts 'x':

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

Rezultātā mainīgajā tiks ierakstīts sekojošais:

'! abx azx'

Piemērs

Nākamajā piemērā autors aizmirsa ekrānēt slīpsvītru un ar regulāro izteiksmi tika iekļautas visas apakšvirknes, jo neekrānēts punkts apzīmē jebkuru simbolu:

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

Rezultātā mainīgajā tiks ierakstīts sekojošais:

'! ! !'

Piezīme

Ievērojiet, ka, ja aizmirsīsiet apgriezto slīpsvītru punktam (kad tam vajadzētu apzīmēt pats sevi) - to var pat nemanīt:

'a.x'.replace(/a.x/g, '!'); // atgriezīs '!', kā mēs to vēlējāmies

Vizuāli darbojas pareizi (tā kā punkts apzīmē jebkuru simbolu, tostarp arī parastu punktu '.'). Bet, ja mainīsiet virkni, kurā notiek aizvietošana - mēs redzēsim savu kļūdu:

'a.x abx azx'.replace(/a.x/g, '!'); // atgriezīs '! ! !', bet tika gaidīts '! abx azx'

Speciālo un parasto simbolu saraksts

Ja ekrānēsiet parastu simbolu - nekas briesmīgs nenotiks - tas tik un tā būs apzīmē pats sevi. Izņēmums - cipari, tos nevar ekrānēt.

Bieži rodas šaubas, vai dotā rakstzīme ir speciāla. Daži nonāk līdz tam, ka ekrānē visus aizdomīgos simbolus pēc kārtas. Tomēr, tā ir slikta prakse (aizsērē regulāro izteiksmi ar apgrieztajiem slīpsvītram).

Ir speciālās rakstzīmes: $ ^ . * + ? \ / {} [] () |

Nav speciālās rakstzīmes: @ : , ' " ; - _ = < > % # ~ `& !

Praktiskie uzdevumi

Dota virkne:

let str = 'a.a aba aea';

Uzrakstiet regulāro izteiksmi, kas atradīs virkni 'a.a', neiekļaujot pārējās.

Dota virkne:

let str = '2+3 223 2223';

Uzrakstiet regulāro izteiksmi, kas atradīs virkni '2+3', neiekļaujot pārējās.

Dota virkne:

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

Uzrakstiet regulāro izteiksmi, kas atradīs virknes '2+3', '2++3', '2+++3', neiekļaujot pārējās (+ var būt jebkurš daudzums).

Dota virkne:

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

Uzrakstiet regulāro izteiksmi, kas atradīs virknes '23', '2+3', '2++3', '2+++3', neiekļaujot pārējās.

Dota virkne:

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

Uzrakstiet regulāro izteiksmi, kas atradīs virknes '*q+', '*qq+', '*qqq+', neiekļaujot pārējās.

Dota virkne:

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

Uzrakstiet regulāro izteiksmi, kas atradīs virknes kvadrātiekavās un aizvietos tās ar '!'.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt