⊗jsSpREESCh 99 of 294 menu

Erimärkide ekraanimine JavaScripti regulaaravaldistes

Oletame, et tahame, et erimärk tähistaks iseennast. Selleks tuleb see ekraanida kurakaldkriipsu abil. Vaatame näidete varal.

Näide

Järgmises näites soovis regulaaravaldise autor, et otsimustempl näeks välja selline: täht 'a', siis pluss '+', siis täht 'x'. Siiski, koodi autor ei ekraaninud sümbolit '+' ja seetõttu on otsimustempl tegelikult selline: täht 'a' üks või mitu korda, siis täht 'x':

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

Tulemusena kirjutatakse muutujasse järgmine:

'a+x ! ! !'

Näide

Nüüd on autor ekraaninud plussi kurakaldkriipsuga. Nüüd näeb otsimustempl välja nagu vaja: täht 'a', siis pluss '+', siis täht 'x'.

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

Tulemusena kirjutatakse muutujasse järgmine:

'! ax aax aaax'

Näide

Selles näites näeb templ välja selline: täht 'a', siis punkt '.', siis täht 'x':

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

Tulemusena kirjutatakse muutujasse järgmine:

'! abx azx'

Näide

Järgmises näites unustas autor ekraanida kaldkriipsu ja regulaaravaldisele vastasid kõik alamsõned, kuna ekraanimata punkt tähistab suvalist sümbolit:

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

Tulemusena kirjutatakse muutujasse järgmine:

'! ! !'

Märkus

Pange tähele, et kui unustada punkti jaoks kurakaldkriips (kui see peaks tähistama iseennast) - siis võib seda isegi ei märgata:

'a.x'.replace(/a.x/g, '!'); // tagastab '!', nagu me soovisimegi

Visuaalselt töötab õigesti (kuna punkt tähistab suvalist sümbolit, sealhulgas ka tavalist punkti '.'). Kuid kui muuta stringi, milles asendused toimuvad - näeme oma viga:

'a.x abx azx'.replace(/a.x/g, '!'); // tagastab '! ! !', kuid oodati '! abx azx'

Erimärkide ja tavamärkide loetelu

Kui ekraanida tavaline märk - ei juhtu midagi halb - see ikkagi tähistab iseennast. Erandiks on numbrid, neid ei saa ekraanida.

Sageli tekib kahtlus, kas antud märk on erimärk. Mõni jõuab selleni, et ekraanib kõik kahtlased sümbolid ühe kaupa. See on siiski halb praktika (tombab regulaaravaldise kurakaldkriipsudest umbe).

Erimärgid on: $ ^ . * + ? \ / {} [] () |

Ei ole erimärgid: @ : , ' " ; - _ = < > % # ~ `& !

Praktilised ülesanded

Antud string:

let str = 'a.a aba aea';

Kirjutage regulaaravaldis, mis leiab stringi 'a.a', ei haara teisi.

Antud string:

let str = '2+3 223 2223';

Kirjutage regulaaravaldis, mis leiab stringi '2+3', ei haara teisi.

Antud string:

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

Kirjutage regulaaravaldis, mis leiab stringid '2+3', '2++3', '2+++3', ei haara teisi (+ võib olla suvaline kogus).

Antud string:

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

Kirjutage regulaaravaldis, mis leiab stringid '23', '2+3', '2++3', '2+++3', ei haara teisi.

Antud string:

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

Kirjutage regulaaravaldis, mis leiab stringid '*q+', '*qq+', '*qqq+', ei haara teisi.

Antud string:

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

Kirjutage regulaaravaldis, mis leiab stringid ruutsulgudes ja asendab need '!'-ga.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu