⊗jsSpRELAB 133 of 294 menu

ජාවාස්ක්‍රිප්ට් රෙගුලර් එක්ස්ප්‍රෙශන් වල ධනාත්මක හා ඍණාත්මක පෙරදැකීම්

සමහර විට මේ වගේ ගැටලුවක් විසඳන්න අවශ්‍ය වෙනවා: තන්‍ය පේළිය 'aaa' සොයාගෙන ඒක '!' දිහාවට වෙනස් කරන්න, නමුත් ඒ වෙලාවට පමණක් 'aaa' ඉදිරියෙන් 'x' තියෙනවා නම්, ඒ වගේම ඒ 'x' එක එහෙම තියෙනවා නම් වෙනස් කරන්න එපා. අපි හිතනවා වගේ ගැටලුව 'පිරිසිදුවම' විසඳන්න ගියොත් අපිට කිසිම දෙයක් හොයාගන්න බෑ:

'aaax baaa'.replace(/aaax/g, '!'); // '! baaa' එනවා, නමුත් අපිට ඕනෙ '!x baaa'

ඉදිරි පෙරදැකීම

ගැටලුව විසඳන්න ඕනෙම ආකාරයක් කියන්න, 'x' වෙනස් කරන්න එපා කියලා. කරන්නෙ ඒක විශේෂ වරහන් (?= ) භාවිතා කරලා, ඒවා බලපුවට විතරයි, ගත්තේ නෑ.

මේ වරහන් හඳුන්වන්නෙ ධනාත්මක ඉදිරි පෙරදැකීම කියලා. ධනාත්මක - හේතුව තමයි 'x' (අපේ අවස්ථාවේ) තිබිය යුතුයි - ඒ විට පමණක් වෙනස් කිරීම සිදු වෙනවා.

අපි අපේ ගැටලුව විසඳන්න මේ වරහන් භාවිතා කරමු:

'aaax aaab'.replace(/aaa(?=x)/g, '!'); // '!x aaab' එනවා

තියෙනවා ඍණාත්මක ඉදිරි පෙරදැකීම - (?! ) - ඒක, අනෙක් අතට, කියනවා කිසිම දෙයක් තිබිය යුතු නෑ කියලා. ඊළඟ උදාහරණයේ, වෙනස් කිරීම සිදු වෙන්නෙ, පමණක් 'aaa' ඉදිරියෙන් නොතිබුණොත් 'x':

'aaax aaab'.replace(/aaa(?!x)/g, '!'); // 'aaax !b' එනවා

පසුපස පෙරදැකීම

ඒ හා සමානවම තියෙනවා ධනාත්මක පසුපස පෙරදැකීම - (?<= ). ඊළඟ උදාහරණයේ වෙනස් කිරීම සිදු වෙන්නෙ, පමණක් 'aaa' ඉදිරියෙන් 'x' තිබුණොත්:

'xaaa'.replace(/(?<=x)aaa/g, '!'); // 'x!' එනවා

ඒ වගේම තියෙනවා ඍණාත්මක පසුපස පෙරදැකීම - (?<! ). ඊළඟ උදාහරණයේ වෙනස් කිරීම සිදු වෙන්නෙ, පමණක් 'aaa' ඉදිරියෙන් 'x' නොතිබුණොත්:

'baaa'.replace(/(?<!x)aaa/g, '!'); // 'b!' එනවා

ප්‍රායෝගික ගැටළු

ෆංක්ෂන් නම් අඩංගු පේළියක් දී ඇත:

let str = 'func1() func2() func3()';

පේළියෙන් ෆංක්ෂන් නම් ඇරෙක්ෂනයක් ලබාගන්න.

ටැගයක් සමඟ පේළියක් දී ඇත:

let str = '<a href="" class="eee" id="zzz">';

මෙම ටැගයේ ගුණාංග නම් ඇරෙක්ෂනයක් ලබාගන්න.

විචල්‍ය සමඟ පේළියක් දී ඇත:

let str = '$aaa $bbb $ccc xxxx';

ඉදිරියෙන් ඩොලර් සංකේතය ඇති උපපේළි ලබාගන්න.

සිංහල
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
අපි වෙබ් අඩවිය ක්‍රියාත්මක කිරීම, විශ්ලේෂණය සහ පුද්ගලීකරණය සඳහා කුකී භාවිතා කරමු. දත්ත සැකසීම සිදුකරනු ලබන්නේ ගෝපනීයතා ප්‍රතිපත්තිය අනුව ය.
සියල්ල පිළිගන්න කොන්දේසි ප්‍රතික්ෂේප කරන්න