⊗jsSpREGL 101 of 294 menu

JavaScript හි නිත්‍ය ප්‍රකාශන වල ලොභය සීමා කිරීම

නිත්‍ය ප්‍රකාශන පෙරනිමියෙන් ලොභි වේ. මෙයින් අදහස් වන්නේ ඒවා උපරිම වශයෙන් හැකි අක්ෂර සංඛ්‍යාවක් අල්ලා ගන්නා බවයි. අපි උදාහරණයක් මගින් බලමු. අපට මේ වගේ අකුරු පේළියක් ඇතැයි සිතමු:

let str = 'aeeex zzz x kkk';

මෙම අකුරු පේළිය තුළ අපට උප අකුරු පේළිය 'aeeex' සොයා ගැනීමට අවශ්‍ය යැයි සිතමු: අකුර 'a', ඉන් පසු ඕනෑම අක්ෂරයක් එක් හෝ ඊට වැඩි වාර ගණනක්, ඉන් පසු අකුර 'x'.

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

ප්‍රතිඵලයක් ලෙස විචල්‍යයට අකුරු පේළිය '! zzz x kkk' ලියා ඇති බව අපි අපේක්ෂා කරමු. කෙසේ වෙතත්, එය එසේ නොවේ - විචල්‍යයට ලැබෙන්නේ අකුරු පේළිය '! kkk' ය.

ගැටලුව වන්නේ අපගේ නිත්‍ය ප්‍රකාශනය අකුර 'a' සිට අකුර 'x' දක්වා සියලුම අක්ෂර සොයන බවයි. නමුත් අපගේ අකුරු පේළියේ අකුර 'x' දෙකක් තිබේ! ලොභය හේතුවෙන් නිත්‍ය ප්‍රකාශනය අවසාන 'x' අකුර දක්වා සොයා ගැනීමට හේතු වන අතර, එමඟින් අප අපේක්ෂා කළ දේ නොව අල්ලා ගනී.

ඇත්ත වශයෙන්ම, බොහෝ විට මෙවැනි හැසිරීමක් අපට අවශ්‍ය වේ. නමුත් මෙම නිශ්චිත අවස්ථාවේ දී අපට ලොභය අවලංගු කිරීමට හා නිත්‍ය ප්‍රකාශනයට පළමු 'x' අකුර දක්වා සොයන ලෙස කියන්නට අවශ්‍ය විය හැක.

ලොභය සීමා කිරීම සඳහා, පුනරාවර්තන ක්‍රියාකරු පසුව ප්‍රශ්නාර්ථ ලකුණ තැබිය යුතුය:

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

ලොභය සියලු පුනරාවර්තන ක්‍රියාකරුවන්ට සීමා කළ හැක: *, ?, සහ {} - මේ ආකාරයට: *?, ?? සහ {}?.

අකුරු පේළියක් ලබා දී ඇත:

let str = 'aba accca azzza wwwwa';

නිත්‍ය ප්‍රකාශනයක් ලියන්න, එය සොයා ගනු ලබන සියලුම අකුරු පේළි යාබදව අකුර 'a' ඇති, සහ ඒ සෑම එකක්ම '!' සමඟ ප්‍රතිස්ථාපනය කරයි. අකුරු 'a' අතර ඕනෑම අක්ෂරයක් තිබිය හැක (අකුර 'a' හැර).

සිංහල
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
අපි වෙබ් අඩවිය ක්‍රියාත්මක කිරීම, විශ්ලේෂණය සහ පුද්ගලීකරණය සඳහා කුකී භාවිතා කරමු. දත්ත සැකසීම සිදුකරනු ලබන්නේ ගෝපනීයතා ප්‍රතිපත්තිය අනුව ය.
සියල්ල පිළිගන්න කොන්දේසි ප්‍රතික්ෂේප කරන්න