⊗jsSpREGL 101 of 294 menu

Kuzuia Uroho katika Usemi wa Kawaida katika JavaScript

Misemo ya kawaida kwa chaguo-msingi ni wanaochukua kila kitu. Hii inamaanisha kuwa hunasa idadi kubwa iwezekanavyo ya herufi. Wacha tuichambue kwa kutumia mfano. Hebu tuseme tuna mstari kama huu:

let str = 'aeeex zzz x kkk';

Wacha tuseme katika mstari huu tunataka kupata kishupi 'aeeex' kulingana na muundo ufuatao: herufi 'a', kisha herufi yoyote mara moja au zaidi, kisha herufi 'x'.

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

Tunatarajia kuwa kwenye kibadilishaji matokeo yataandikwa kwenye mstari '! zzz x kkk'. Hata hivyo, si hivyo - kwenye kibadilishaji huingia mstari '! kkk'.

Shida yote ni kwamba usemi wetu wa kawaida unatafuta herufi zote kutoka herufi 'a' hadi herufi 'x'. Lakini katika mstari wetu kuna herufi mbili 'x'! Kwa sababu ya uroho hutokea kwamba usemi wa kawaida unatafuta hadi herufi ya mwisho ya x, na hivyo kuchukua sio kile tulichotarajia.

Bila shaka, mara nyingi tabia kama hii ndiyo tunayohitaji. Lakini hasa katika kesi hii tungependa kughairi uroho na kuwaambia usemi wa kawaida, itafute mpaka herufi ya kwanza ya x.

Ili kuzuia uroho, unahitaji kuweka alama ya kuuliza baada ya opereta wa kurudia:

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

Uroho unaweza kuzuiwa kwa waendeshaji wote wa kurudia: *, ?, na {} - kama hivi: *?, ?? na {}?.

Umepewa mstari:

let str = 'aba accca azzza wwwwa';

Andika usemi wa kawaida, utakopata mistari yote ambayo kwenye pembe zake kuna herufi 'a', na utabadilisha kila moja kwa '!'. Kati ya herufi 'a' kunaweza kuwa na herufi yoyote (isipokuwa 'a').

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