ඔබ රෙගෙක්ස් (regex) එකක් ලියලා, කීපයක් පමණ සාම්පල පද පෙළවල පරීක්ෂා කරලා, හොඳින් වැඩ කරනවා කියලා තහවුරු කරගන්නවා. ඒක නිවැරදිව පෙනුන පසු, කේතය නිෂ්පාදනයට යවනවා. නමුත්, කිසිඳු කාලයක් නොගතව, "validation is broken" කියලා bug report එකක් එළැඹෙයි. පරීක්ෂා කළ පද පෙළවල සාර්ථකව වැඩ කරපු රෙගෙක්ස් එක, සැබැවින්ම නිෂ්පාදනයේ අහඹු දත්ත මත වැරදි වෙලා තියෙනවා.
මෙම සිදුවීමේ මූලික හේතුව, අපි පරීක්ෂා කරන දත්ත ඉතාම පැහැදිලි, නියමිත, හා හස්තයෝජිත වීමයි. නමුත්, සජීවී පරිසරය පරිශීලකයන්, API, හා දත්ත ගබඩා වලින් එන අවිස්සාවූ, අස්ථිර, හා බහුල දත්ත සමඟ පිරී ඇත. ඒ නිසා, රෙගෙක්ස් එකේ සුළු වැරදිත්, නිෂ්පාදනයේ අත්යවශ්ය ක්රියාකාරකම් බිඳ දමයි.
1. Greedy quantifier (ඉක්මන් ආකාරයෙන්) ගැලපීම – ඔබ HTML ටැග් ඉවත් කිරීමට /<.*>/g වැනි රෙගෙක්ස් එක භාවිතා කළා කියලා හිතන්න. එක් ටැග් එකක් පමණක් ඇති පද පෙළේ එය හොඳින් වැඩ කරයි, නමුත් බහු ටැග් එකක් සමඟ /<.*>/g මුළු අන්තර්ගතයම ග්රහණය කරයි. මෙය lazy quantifier /<.*?>/g භාවිතයෙන් විසඳිය හැකිය.
2. Anchors (^, $) සහ multiline (බහුපේළි) දත්ත – ^ERROR:.*$ ලෙස ලියන විට, එය පේළියේ ආරම්භය සහ අවසානය පමණක් පරීක්ෂා කරයි. ලොග් ගොනුවක් බහුපේළි වශයෙන් එන විට, m flag එක (/^ERROR:.*$/gm) අවශ්ය වේ. තවත්, . යන චරිතය පේළි බිඳීම් හරහා ගමන් කරන්න s flag එකක් අවශ්ය බවත් අමතක නොකළ යුතුය.
3. /g flag එකේ stateful ස්වභාවය – JavaScript හි /g flag එක lastIndex ගුණාංගය මඟින් අවසන් ගැලපීමේ ස්ථානය සුරක්ෂිත කරයි. එකම රෙගෙක්ස් වස්තුව එකাধিক වරක් .test() හෝ .exec() සමඟ භාවිතා කළොත්, පෙර ගැලපීම් මත පදනම්ව ප්රතිඵල වෙනස් වේ. ඒ නිසා, ලූපයක් තුළ එකම රෙගෙක්ස් භාවිතා කරන විට, new RegExp(...) හෝ flag නොමැතිව භාවිතා කිරීම වැදගත් වේ.
ඉහත උදාහරණයන් පෙන්වන ආකාරයෙන්, රෙගෙක්ස් එකක් පරීක්ෂා කිරීමේදී නිරවද්ය, විවිධාංගීකරණ දත්ත සමඟ පරීක්ෂා කිරීම අත්යවශ්ය වේ. නිෂ්පාදනයේ අසාර්ථකතාවන් වැළැක්වීමට, unit test, integration test, සහ real‑world data simulation එකතු කිරීම ඉතා ප්රයෝජනවත්.
ශ්රී ලංකාවට ඇති වැදගත්කම
- සිසුන් – රෙගෙක්ස් භාවිතය පිළිබඳ ගැඹුරු අවබෝධයක් ලබා, පාඨමාලා හෝ සම්මුඛ පරීක්ෂණ වලදී වැරදි අඩු කරයි.
- සොෆ්ට්වේයා සංවර්ධකයින් – නිෂ්පාදන පරිසරයේ දෝෂ හඳුනා ගැනීමේ කාලය කෙටි කර, වැඩි විශ්වාසනීය API සහ UI validation ක්රම නිර්මාණය කළ හැකිය.
- ව්යාපාරිකයන් – ගනුදෙනුකරුවන්ගේ දත්ත වල වැරදි validation නිසා ඇතිවන නීතිමය හා ආර්ථික අලාභය අඩු කර, සේවා ගුණාත්මකතාව වැඩි කරයි.
ඉදිරියට, රෙගෙක්ස් පරීක්ෂා කිරීමේදී “clean” දත්ත පමණක් නොව, වඩාත් විවිධාංගීකරණ “real‑world” දත්ත සමඟත් පරීක්ෂා කිරීම, ඔබේ කේතයේ සාර්ථකත්වය සහ පාරිභෝගික තෘප්තිකරණය ඉහළ නැංවීමට මූලික වේ.