متن 🔒 در مرورگر اجرا می‌شود — داده‌ای ارسال نمی‌شود

تست Regex جاوااسکریپت

الگو را با همان موتور RegExp تست کنید که کد JavaScript شما رویش اجرا می‌شود؛ پس هرچه اینجا تطبیق کند، در کد شما هم تطبیق می‌کند.

/ /
متن آزمایشی
تطبیق‌ها و گروه‌ها
تطبیق‌ها اینجا نمایش داده می‌شوند...

تست Regex جاوااسکریپت

عبارت باقاعده‌ای که در یک زبان کار می‌کند ممکن است در زبان دیگر شکست بخورد؛ برای همین امن‌ترین جا برای تست یک الگوی JavaScript، خود یک موتور JavaScript است. این صفحه آزمایشگر Regex را با نمونه‌ای باز می‌کند که از گروه‌های نام‌دار استفاده می‌کند: الگوی (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})، دو تاریخ در متن آزمایشی و جایگزین $<day>/$<month>/$<year> که آنها را به ترتیب روز، ماه و سال بازنویسی می‌کند.

موتور، موتور مرورگر خودتان است

چیزی به سرور فرستاده نمی‌شود: الگو با new RegExp() در همان زبانه مرورگر شما کامپایل می‌شود. یعنی V8 در Chrome و Edge که موتور داخل Node.js هم هست، SpiderMonkey در Firefox و JavaScriptCore در Safari. هر سه همان قواعد ECMAScript را پیاده می‌کنند، پس الگویی که اینجا درست رفتار می‌کند، در نسخه‌های فعلی در کد فرانت‌اند یا Node شما هم همان رفتار را دارد.

پرچم‌ها

پرچماثر
gهمه تطبیق‌ها را پیدا می‌کند، نه فقط اولی؛ برای جایگزینی همه آنها لازم است
iبزرگی و کوچکی حروف را نادیده می‌گیرد
m^ و $ در هر شکست سطر تطبیق می‌کنند، نه فقط در ابتدا و انتهای متن
s. با شکست سطر هم تطبیق می‌کند
uحالت یونیکد: کل code point به‌جای واحدهای UTF-16، و property escapeهایی مثل \p{L}
yچسبان (sticky): فقط از جایی تطبیق می‌دهد که تطبیق قبلی تمام شده است
dابتدا و انتهای هر گروه را ثبت می‌کند، برای کدی که match.indices را می‌خواند

هر حرف دیگری پیش از رسیدن الگو به موتور حذف می‌شود، از جمله پرچم جدیدتر v. حرفی که دو بار تایپ شود، مثل gg، خطا است و ابزار پیام خود موتور را نشان می‌دهد.

دام‌های رایج در JavaScript

  • \w و \b فقط A تا Z، a تا z، 0 تا 9 و زیرخط را می‌شناسند، پس é یا حروف فارسی را نمی‌بینند. با پرچم u، \p{L} با یک حرف از هر الفبایی تطبیق می‌کند.
  • داخل رشته هر بک‌اسلش باید دوتایی شود: new RegExp("\\d+") همان الگوی لیترال /\d+/ است. این آزمایشگر الگو را همان‌طور می‌گیرد که بین دو اسلش می‌نویسید.
  • regex با پرچم g، مقدار lastIndex را بین فراخوانی‌های test() و exec() به خاطر می‌سپارد؛ برای همین تست دوباره همان رشته ممکن است اول true و بعد false بدهد.
  • replace() با یک رشته ساده به‌عنوان الگو فقط اولین مورد را عوض می‌کند؛ از regex با g یا از replaceAll() استفاده کنید.
  • در جایگزین، $1 گروه اول است، $<name> یک گروه نام‌دار، $& کل تطبیق و $$ یک علامت دلار واقعی.

جایگزینی با گروه‌های نام‌دار

کادر «جایگزینی با» از همان قواعد String.prototype.replace() پیروی می‌کند. با الگوی نمونه، $<day>/$<month>/$<year> تاریخ 2026-09-24 را به 24/09/2026 تبدیل می‌کند. گروه‌های نام‌دار الگو را ماه‌ها بعد هم خوانا نگه می‌دارند: match.groups.year گویاتر از match[1] است.

صفحه‌های مرتبط

با Regex آدرس URL از یک الگوی آماده شروع کنید، یا کلمه‌های تکراری را با جست‌وجو و جایگزینی با Regex اصلاح کنید. برای آدرس ایمیل، و برای عدد، شماره تلفن و آدرس IP، راهنمای Regex برای ایمیل و راهنمای الگوهای عدد، تلفن و IP جزئیات را شرح می‌دهند.

آموزش‌های مرتبط