⊗jsSpREESCh 99 of 294 menu

Kuzuia Herufi Maalum Katika Usanifu (Regular Expressions) JavaScript

Tukichukulia kwamba tunataka kufanya herufi maalum iashirie yenyewe. Ili kufanya hivyo inahitaji kuzuiwa kwa kutumia mshale wa nyuma (backslash). Hebu tuangalie kwa mifano.

Mfano

Katika mfano ufuatao mwandishi wa usanifu alitaka, muundo wa utafutaji uonekane kama hivi: herufi 'a', kisha alama ya jumlisha '+', kisha herufi 'x'. Hata hivyo, mwandishi wa msimbo hakuizuia alama '+' na kwa hivyo muundo wa utafutaji kweli unafanana na hivi: herufi 'a' mara moja au zaidi, kisha herufi 'x':

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

Matokeo yake, kwenye kibadala kitaandikwa yafuatayo:

'a+x ! ! !'

Mfano

Sasa mwandishi ameizuia alama ya jumlisha kwa mshale wa nyuma. Sasa muundo wa utafutaji unaonekana kama inavyotakiwa: herufi 'a', kisha alama ya jumlisha '+', kisha herufi 'x'.

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

Matokeo yake, kwenye kibadala kitaandikwa yafuatayo:

'! ax aax aaax'

Mfano

Katika mfano huu muundo unafanana na hivi: herufi 'a', kisha nukta '.', kisha herufi 'x':

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

Matokeo yake, kwenye kibadala kitaandikwa yafuatayo:

'! abx azx'

Mfano

Katika mfano ufuatao mwandishi amesahau kuzuia nukta na usanifu umevuta herufi zote, kwa sababu nukta isiyozuiwa inaashiria herufi yoyote:

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

Matokeo yake, kwenye kibadala kitaandikwa yafuatayo:

'! ! !'

Uzingatio

Zingatia kwamba kama utasahau mshale wa nyuma kwa nukta (wakati inapaswa kuashiria yenyewe) - hii inaweza hata kutokugundulika:

'a.x'.replace(/a.x/g, '!'); // itarudisha '!', kama tulivyotaka

Kwa kuonekana inafanya kazi sawa (kwa sababu nukta inaashiria herufi yoyote, pamoja na nukta ya kawaida '.'). Lakini kama utakibadilisha mfuatano, ambao badiliko linatendeka - tutaona makosa yetu ya wazi:

'a.x abx azx'.replace(/a.x/g, '!'); // itarudisha '! ! !', lakini ilitarajiwa '! abx azx'

Orodha ya alama maalum na za kawaida

Kama utazuia herufi ya kawaida - hakitakuwa na jambo baya litakalotokea - bado itaashiria yenyewe. Isipokuwa - nambari, haziwezi kuzuiwa.

Mara nyingi huwa na shaka, ikiwa herufi fulani ni maalum. Wengine hufika kwenye hatua ya kuzuia herufi zote zenye tuhuma mfululizo. Hata hivyo, hii ni tabia mbaya (inachafua usanifu kwa mishale ya nyuma).

Ni alama maalum: $ ^ . * + ? \ / {} [] () |

Si alama maalum: @ : , ' " ; - _ = < > % # ~ `& !

Kazi za vitendo

Umepewa mfuatano:

let str = 'a.a aba aea';

Andika usanifu, ambayo itapata mfuatano 'a.a', bila kuvuta mingine.

Umepewa mfuatano:

let str = '2+3 223 2223';

Andika usanifu, ambayo itapata mfuatano '2+3', bila kuvuta mingine.

Umepewa mfuatano:

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

Andika usanifu, ambayo itapata mifuatano '2+3', '2++3', '2+++3', bila kuvuta mingine (+ inaweza kuwa idadi yoyote ya herufi).

Umepewa mfuatano:

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

Andika usanifu, ambayo itapata mifuatano '23', '2+3', '2++3', '2+++3', bila kuvuta mingine.

Umepewa mfuatano:

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

Andika usanifu, ambayo itapata mifuatano '*q+', '*qq+', '*qqq+', bila kuvuta mingine.

Umepewa mfuatano:

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

Andika usanifu, ambayo itapata mifuatano kwenye mabano mraba na ivabadilishe kwa '!'.

Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa