متدهای testexec
متدهای test و exec در عبارات منظم جاوااسکریپت
عبارات منظم (Regular Expressions) یکی از قدرتمندترین ابزارها برای پردازش و تحلیل رشتهها در جاوااسکریپت محسوب میشوند. دو متد پرکاربرد در این زمینه test() و exec() هستند که هر کدام کاربردهای خاص خود را دارند.
متد test()
این متد سادهترین راه برای بررسی وجود یک الگو در رشته است. خروجی آن یک مقدار بولین (true/false) است که نشان میدهد آیا الگو در رشته وجود دارد یا خیر.
مثال | نتیجه |
---|---|
/hello/.test("hello world") | true |
/\d{3}/.test("abc") | false |
کاربردهای اصلی متد test() شامل:
- اعتبارسنجی فرمها (مانند بررسی ایمیل یا شماره تلفن)
- بررسی وجود زیررشته خاص در متن
- شرطهای ساده برای پردازش رشتهها
متد exec()
این متد پیچیدهتر از test() عمل میکند و اطلاعات کاملتری درباره تطابق الگو برمیگرداند. خروجی آن یک آرایه است که شامل:
- متن تطابق یافته
- گروههای捕获 شده (در صورت وجود)
- index تطابق در رشته اصلی
- رشته ورودی
let result = /(\d{3})-(\d{3})/.exec("تلفن: 123-456");
نتیجه شامل ['123-456', '123', '456', index: 6, input: 'تلفن: 123-456'] خواهد بود.
تفاوتهای کلیدی بین این دو متد:
متد test() | متد exec() |
---|---|
برمیگرداند Boolean | برمیگرداند Array/null |
سریعتر برای بررسی ساده | اطلاعات کاملتر |
حافظه کمتری مصرف میکند | برای پردازش پیچیده مناسب است |
برای یادگیری عمیقتر درباره عبارات منظم در جاوااسکریپت میتوانید به آموزش کلیک کنید مراجعه نمایید.
نکات پیشرفته
هنگام استفاده از این متدها به این نکات توجه کنید:
- در صورت استفاده از پرچم g (جستجوی سراسری)، رفتار exec() تغییر میکند
- متد test() نیز هنگام استفاده با پرچم g، مقدار lastIndex را به روز میکند
- برای عملکرد بهتر، عبارات منظم پیچیده را در متغیر ذخیره کنید
- در حلقهها مراقب بهروزرسانی lastIndex باشید
با ترکیب این دو متد میتوانید عملیاتهای قدرتمندی روی متنها انجام دهید. انتخاب بین آنها بستگی به نیاز شما دارد: اگر فقط به وجود یا عدم وجود الگو نیاز دارید، test() گزینه بهینهتری است، اما اگر به اطلاعات دقیقتر درباره تطابق نیاز دارید، exec() انتخاب بهتری خواهد بود.