عبارتهای منظم
عبارت منظم الگویی است که روی متن اجرا میشود. /tea/ میپرسد آیا tea هست یا نه. replace رشتهٔ تازهای میسازد که آنجا mint نشسته. یادداشت این صفحه Order: tea است و خطش true / Order: mint است.
این صفحهٔ نقشه نیست
صفحهٔ نقشه روی lida / mint / 2 تمام شد. آنجا ذخیرهسازی بود. اینجا مهمان ذخیره نمیشود. یک رشته جستوجو میشود. جستوجوی ناموفق false یا null برمیگرداند و خطا پرتاب نمیکند.
test فقط بله یا خیر میگوید
/tea/.test("mint tea") برابر true است، چون الگو داخل متن نشسته. /tea/.test("lemon") برابر false است. پرچم i بزرگی و کوچکی را نادیده میگیرد، پس /tea/i با Tea جور است.
console.log(/tea/.test("mint tea"));
console.log(/tea/.test("lemon"));
لاگها true و بعد false هستند. نقطه هر یک نویسه را جز شکست خط جور میکند، پس /t.a/ هم با tea جور است. اگر خود نقطه را میخواهی باید \. بنویسی.
کل رشته، یا فقط یک تکه
^ یعنی ابتدا. $ یعنی انتها. /^tea$/ با tea جور است و mint tea را رد میکند. بدون این دو علامت، /tea/ داخل یادداشت بلندتر هم موفق میشود.
console.log(/^tea$/.test("tea"));
console.log(/^tea$/.test("mint tea"));
لاگها true و بعد false هستند. mint tea آن حرفها را دارد، ولی فقط tea نیست.
هر نسخه، بعد یک رشتهٔ تازه
match با پرچم g هر نسخه را برمیگرداند. replace با g هر نسخه را عوض میکند و رشتهٔ تازه میدهد. یادداشت اصلی همان میماند تا نتیجه را در متغیری بگذاری.
const note = "tea and tea";
console.log(note.match(/tea/g));
console.log(note.replace(/tea/g, "mint"));
console.log(note);
لاگ match آرایهای از دو رشتهٔ tea است. لاگ replace برابر mint and mint است. لاگ سوم هنوز tea and tea است، چون replace خودش note را دست نزده. اگر g را برداری فقط اولین tea عوض میشود. اگر هیچ چیز جور نشود، match مقدار null برمیگرداند، نه آرایهٔ خالی.
چه چیزی پس میگیری
متد را از روی شکل جواب انتخاب کن.
📊 متدهای عبارت منظم
| متد | چه میدهد | روی این یادداشت |
|---|---|---|
/tea/.test(note) |
true یا false |
برای Order: tea مقدار true |
note.match(/tea/) |
یک آرایه، یا null |
کلمهٔ tea و جایی که نشسته |
note.match(/tea/g) |
همهٔ نسخهها، یا null |
دو tea در tea and tea |
note.replace(/tea/, "mint") |
یک رشتهٔ تازه | Order: mint |
test همان بله یا خیر است. match تکهها را میدهد. replace متن بازنویسیشده را میدهد. اگر میخواهی نگهاش داری، آن متن را در متغیر بگذار.
خط صفحه
صفحه Order: tea را آزمایش میکند، نوشیدنی را عوض میکند، و هر دو نتیجه را مینویسد.
<!DOCTYPE html>
<html>
<body>
<p id="line">…</p>
<script>
const note = "Order: tea";
const found = /tea/.test(note);
const next = note.replace(/tea/, "mint");
document.querySelector("#line").textContent = found + " / " + next;
</script>
</body>
</html>
خط true / Order: mint است. خود note هنوز Order: tea است. lida / mint / 2 مال صفحهٔ نقشه بود.
پشت پیشخوان
- mint tea را با /tea/ آزمایش کن. نتیجه true است.
- lemon را با /tea/ آزمایش کن. نتیجه false است.
- mint tea را با /^tea$/ آزمایش کن. نتیجه false است.
- tea and tea را با /tea/g بگیر. طول آرایه 2 است.
- صفحه را بخوان. خط true / Order: mint است.
جاهایی که اشتباه میشود
الگو بدون ^ و $ یک تکه را میگیرد، نه کل یادداشت را. replace اصل را دست نمیزند.
- خواندن
null.lengthوقتیmatchچیزی پیدا نکرده - انتظار اینکه
replaceخودnoteرا عوض کند - گذاشتن
gروی الگویی که باtestدوباره استفاده میکنی؛ آن الگو یادش میماند کجا ایستاده - فراموش کردن
\.وقتی نقطهٔ واقعی میخواهی - خواندن خط بهشکل lida / mint / 2
اینها را نگه دار
/tea/.testجواب true یا false میدهد/^tea$/فقط رشتهٔ کامل tea را میپذیردmatchباgهر نسخه را فهرست میکند، یا null برمیگرداندreplaceرشتهٔ تازه برمیگرداند- خط صفحه true / Order: mint است
🧠 دانش خود را بیازمایید
دانش خود را بیازمایید
خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کردهاید
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود