فایل شامل ۱۰۰ ریجکس مفید برای کاربردهای ایرانی و عمومی.
هر الگو به صورت PCRE-style (با ^ و $) نوشته شده.
/^09\d{9}$/
توضیح: شماره موبایل ۱۱ رقمی که با 09
شروع میشود. مثال: 09123456789
/^09\d{2}[- ]?\d{3}[- ]?\d{4}$/
مثال: 091-234-5678
یا 09123456789
/^0\d{2,3}[- ]?\d{7,8}$/
مثال: 021-12345678
یا 041-1234567
/^\d{5}-?\d{5}$/
مثال: 1234567890
یا 12345-67890
/^(?!([0-9])\1{9})\d{10}$/
توضیح: فقط فرمت؛ چکسام را بررسی نمیکند. مثال: 0012345678
/^\d{1,10}$/
مثال: 12345
/^\d{12}$/
مثال: 123456789012
/^\d{11}$/
مثال: 12345678901
/^\d{10,12}$/
/^\d{3}\s?\d{3}\s?\d{4}$/
مثال: 123 456 7890
/^[A-Z0-9]{5,10}$/i
مثال: A1234567
/^\d{16}$/
مثال: 6037123456789012
/^(?:\d{4}[- ]?){3}\d{4}$/
مثال: 6037 1234 5678 9012
/^4\d{12}(?:\d{3})?$/
/^5[1-5]\d{14}$/
/^3[47]\d{13}$/
/^IR\d{24}$/
یا با فاصلههای اختیاری:
/^IR(?:\s?\d){24}$/
/^(?:\d+|\d{1,3}(?:,\d{3})*)(?:\.\d+)?$/
مثال: 1,234,567.50
یا 1234567
/^(?:\d+|\d{1,3}(?:,\d{3})*)(?:\.\d+)?\s?(?:ریال|تومان|IRR)?$/iu
مثال: ۱,۲۳۴ تومان
(نکته: برای ارقام فارسی باید یونیکد فارسی را هم اضافه کنید — در آیتمهای بعدی هست)
/^[\u0600-\u06FF\s]+$/
مثال: علی رضا
/^[\u0600-\u06FF\u200C\s]{2,50}$/
نکته: \u200C
نیمفاصله (Zero-width non-joiner) را پوشش میدهد.
/^[\u0600-\u06FF\u200C][\u0600-\u06FF\u200C\s\-]{1,49}$/
/^[0-9\u06F0-\u06F9]+$/
مثال: ۱۲۳۴
یا 1234
/^[0-9\u06F0-\u06F9]+(?:[.,][0-9\u06F0-\u06F9]+)?$/
مثال: ۱۲۳٫۴۵
/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/
(قابل قبول برای اکثریت موارد)
/^(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z]{2,}$/
/^(https?:\/\/)?[^\s/$.?#].[^\s]*$/i
(الگوی ساده و عمومی برای URLها)
/^(25[0-5]|2[0-4]\d|1?\d{1,2})(\.(25[0-5]|2[0-4]\d|1?\d{1,2})){3}$/
/^([0-9a-f]{1,4}:){7}[0-9a-f]{1,4}$/i
/^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$/
/^[A-Za-z0-9\-_]{10,}$/
/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/
/^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$/
مثال: 23:59
یا 09:05:30
/^(19|20)\d\d-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/
/^(13|14)\d{2}\/(0[1-9]|1[0-2])\/(0[1-9]|[12]\d|3[01])$/
مثال: 1402/07/15
(بهصحت روز/ماه دقیق بررسی نشد)
/^(13|14)\d{2}[-\/](0[1-9]|1[0-2])[-\/](0[1-9]|[12]\d|3[01])$/
/^(0[1-9]|[12]\d|3[01])[-\/](0[1-9]|1[0-2])[-\/](19|20)\d{2}$/
/^[A-Za-z0-9._]{3,30}$/
/^[\u0600-\u06FF0-9._]{3,30}$/
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*\W).{8,}$/
/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i
/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/
/^[A-Za-z0-9\-\/]+$/
/^[0-9\-/]{1,30}$/
/^[A-Za-z0-9_-]{6,20}$/
/^(فروردین|اردیبهشت|خرداد|تیر|مرداد|شهریور|مهر|آبان|آذر|دی|بهمن|اسفند)$/u
/^(شنبه|یکشنبه|دوشنبه|سهشنبه|چهارشنبه|پنجشنبه|جمعه)$/u
/^[0-9]{2,3}[A-Za-z\u0621-\u06FF]{1}[0-9]{3}[0-9]{2}$/u
توضیح: پلاکهای رسمی پیچیدهاند؛ این الگو نمونهٔ عمومی است.
/^[\u06F0-\u06F9\d]{4,7}[A-Za-z\u0621-\u06FF]?$/u
/^[A-Za-z\u0600-\u06FF0-9\-\/]{3,20}$/
/^[\u0600-\u06FFA-Za-z0-9\s\.,\-\/#()]{5,200}$/
/^\s*$/
(این برای تشخیص رشتهٔ خالی است)
/[\u0600-\u06FF]/
/[0-9\u06F0-\u06F9]/
/^#([A-Za-z0-9_]|[\u0600-\u06FF])+$/u
مثال: #تست
یا #leo_nova
/^@[\w._]{1,30}$/
/^[A-Za-z\s]{2,60}$/
/^\S(?:.*\S)?$/
/^[A-Za-z0-9\-\/]{4,50}$/
/^(\/?[A-Za-z0-9._\-+]+)+\/?$/
مثال: /home/user/docs
/^[A-Za-z0-9\u0600-\u06FF._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/u
/^[^\x00-\x1F]+$/
/^[0-9]{3,6}$/
/^[A-Za-z0-9]{6,36}$/
/^[0-9a-fA-F]{32}$/
/^[^()]*$|^[^()]*\([^()]*\)[^()]*$/
(الگوی ساده، برای بررسی وجود یا عدموجود پرانتز یا یک جفت)
/^[1-9]\d*$/
/^-?\d+$/
/^\s*(\{|\[).*(\}|\])\s*$/s
(فقط بررسی کلی؛ پارس کامل را انجام نمیدهد)
/^[\p{L}\p{N}]+$/u
/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.ir$/i
/^[A-Za-z0-9\-]{3,20}$/
/^\d{10}$/
/^(https?:\/\/)([A-Za-z0-9-]+\.)+[A-Za-z]{2,}(\/\S*)?$/
/<\/?[^>]+>/i
/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/i
/^(100|[0-9]{1,2})(\.\d+)?%?$/
/^[A-Za-z0-9]{6,20}$/
/^\d{4,8}$/
/^[A-Za-z0-9]+$/
/^\p{L}+$/u
/(?=.*[A-Za-z])(?=.*[\u0600-\u06FF]).+/
/^[0-9\-\/]{5,30}$/
/^[^,\n]+(,[^,\n]+)*$/
(برای یک خط)
/^@?[A-Za-z0-9._]{1,30}$/
/^[A-Za-z]:\\(?:[^\\\/:*?"<>|\r\n]+\\)*[^\\\/:*?"<>|\r\n]*$/
/^[^\\\/:*?"<>|\r\n]{1,255}$/
/^[IVXLCDM]+$/i
/^<([A-Za-z]+)[^>]*>.*<\/\1>$/s
/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}$/i
/[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u
(پشتیبانی بسته به engine ممکن است متفاوت باشد)
/^\d{10,20}$/
/^(100(?:\.0{1,2})?|[0-9]{1,2}(?:\.\d{1,2})?)$/
/^[A-Za-z0-9\-]{5,40}$/
/^[^,;@\s]+@[^,;@\s]+\.[^,;@\s]+(?:[;,]\s*[^,;@\s]+@[^,;@\s]+\.[^,;@\s]+)*$/
/^(?:[0-9]|1[0-9]|20)(?:\.\d+)?$|^(?:[0-9]{1,3})(?:\.\d+)?$/
/^[\[\]\(\)\{\}]+$/
/^[a-z0-9]+(?:-[a-z0-9]+)*$/
/^(?!.*<[^>]+>)[\s\S]+$/
/^(?:09\d{9}|0\d{2,3}[- ]?\d{7,8}|[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}|(?!([0-9])\1{9})\d{10})$/
توضیح: اگر بخواهید یک فیلد ورودی قبول کنه هر کدوم از این چهار نوع (موبایل یا ثابت یا ایمیل یا کدملی).
- بعضی چیزها (مثل کد ملی یا شماره کارت یا IBAN) نیاز به بررسی الگوریتمی (checksum / Luhn) دارند که با یک ریجکس کامل قابل تأیید نیست؛ اینجا فقط قالبها و چکهای سطحی آورده شده.
- برای پشتیبانی از اعداد فارسی (۰۱۲۳...) از رنج یونیکد
\u06F0-\u06F9
استفاده کنید یا قبل از اعتبارسنجی ارقام فارسی رو به لاتین تبدیل کنید. - برای ریجکسهایی که
u
یاi
دارند، اگر موتور ریجکس شما این flagها را ندارد، ممکنه نیاز به تنظیمات محلی باشه.