ماڈیول اسباق (2/4)
بنیادی تبدیلی اور `$1`
JavaScript میں، String.prototype.replace(regex, replacement) کارکردگی کا مظاہرہ کرتا ہے۔
پیٹرن میچ کرتا ہے اور ہر میچ کو دی گئی سٹرنگ سے بدل دیتا ہے۔ g کے ساتھ
پرچم یہ تمام میچوں کی جگہ لے لیتا ہے۔ اس کے بغیر، صرف پہلا. replaceAll
عالمی رویے کو مجبور کرتا ہے (اور ریجیکس پر g پرچم کی ضرورت ہے)۔
'ciao mondo'.replace(/o/g, '0'); // "cia0 m0nd0"
'Mario Rossi'.replace(/(\w+) (\w+)/, '$2 $1'); // "Rossi Mario"متبادل سٹرنگ میں حوالہ جات
متبادل سٹرنگ کے اندر، یہ خاص ہیں:
$1,$2, \u2026 -- ریجیکس کے نمبر والے گروپ کا پیچھے حوالہ۔$<name>-- نام والے گروپ کا بیک حوالہ۔$&-- پورا میچ۔$\_` -- text before the match.$'-- text after the match.$$-- a single literal$۔
const data = '2024-03-15';
data.replace(/(\d{4})-(\d{2})-(\d{2})/, '$3/$2/$1');
// "15/03/2024"آرڈر کو الٹ کر تاریخ کو دوبارہ فارمیٹ کریں۔ ریجیکس میں 3 گروپس ہیں، اور میں
متبادل سٹرنگ آپ انہیں $1، $2، $3 کے طور پر حوالہ دیتے ہیں۔
تبدیلیوں میں خصوصی حوالہ جات
$1 اور $2 کے علاوہ، آپ پورے مماثل متن کو داخل کرنے کے لئے $& استعمال کر سکتے ہیں، $ for all text preceding the match, and$'` اس کے بعد آنے والے تمام متن کے لئے۔ یہ جے ایس کوڈ لکھے بغیر بھی بھرپور تبدیلیوں کی اجازت دیتا ہے۔
اسے آزمائیں
ہر تاریخ کو YYYY-MM-DD فارمیٹ میں تین گروپس (سال، مہینہ، دن) کے ساتھ تلاش کریں۔ اس طرح آپ DD/MM/YYYY حاصل کرنے کے لیے تبدیلی کا استعمال کر سکتے ہیں۔
اشارہ دکھائیں۔
\\d+ کو \\d{4}، \\d{2}، \\d{2} کو تین گروپوں کے اندر (...) سے تبدیل کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔
ورزش کا جائزہ لیں۔
'پہلی آخری' کو دو نامزد گروپوں 'نوم' اور 'کوگنوم' کے طور پر تلاش کریں، تاکہ آپ اسے `$<cognome>, $<nome>` کا استعمال کرتے ہوئے `cognome, nome` کے طور پر دوبارہ لکھ سکیں۔
اشارہ دکھائیں۔
(?<nome>\\w+) اور (?<cognome>\\w+) کو \\s+ سے الگ کرکے استعمال کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔
اضافی چیلنج
Create a capture pattern to reverse the order of first and last name from `Lastname, Firstname` format to `Firstname Lastname`.
اشارہ دکھائیں۔
Use two capture groups for last and first name; the replacement will be performed via $2 $1.
3 کوششوں کے بعد حل دستیاب ہے۔