فایل شامل ۱۰۰ ریجکس مفید برای کاربردهای ایرانی و عمومی.
هر الگو به صورت PCRE-style (با ^ و $) نوشته شده.
/^09\d{9}$/توضیح: شماره موبایل ۱۱ رقمی که با 09 شروع میشود. مثال: 09123456789
/^0?9(0[1-5]|1[0-9]|2[0-2]|3[0-9]|4[1]|9[0123489])[0-9]{7}$/توضیح: شماره موبایل ۱۰ یا ۱۱ رقمی که با 09 یا با 9 شروع میشود و تمام پیش شماره های اپراتورها در ایران را ( تا به امروز ) پوشش میدهد.
/^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ها را ندارد، ممکنه نیاز به تنظیمات محلی باشه.