یکی از قدرتمندترین قابلیتهای اضافه شده به ActionScript 3، عبارات با قاعده بوده که از طریق کلاس RegExp قابل دسترس هستند. سادهترین تعریفی که از عبارات با قاعده میتوان ارائه نمود این است که این عبارات، الگوهایی برای تطبیق و جستجو در رشتهها هستند. با استفاده از عبارات با قاعده امکان تعریف الگوهای متعدد و پیچیدهای برای جستجوی اعداد، کاراکترها، علائم و غیره در رشته فراهم میگردد.
از جمله کاربردهای این عبارات میتوان به موارد زیر اشاره نمود:
- جستجوی زیر رشتههایی که با کلمه خاصی شروع شده و یا با آن تمام میشوند.
- جستجوی کلماتی که دارای کاراکتر خاصی هستند.
- استخراج مقادیر خاصی مانند مقدار زمان، تاریخ، شماره تلفن و غیره از یک رشته.
- بررسی صحت یک رشته دریافت شده از کاربر مانند آدرس ایمیل یا آدرس یک وب سایت.
- استخراج تگهای HTML از میان رشتهها.
الگوهای عبارت با قاعده با ترکیب کاراکترهای خاصی که دارای معانی مختلفی هستند ساخته میشوند. برای تعریف عبارات با قاعده از الگوی زیر استفاده میشود:
var نام متغیر : RegExp = new RegExp("رشته"); var نام متغیر : RegExp = /عبارات با قاعده /;
در روش اول با استفاده از متد سازنده کلاس RegExp و new که برای ساخت شئ جدید مورد استفاده قرار میگیرد، متن عبارت با قاعده انتصاب داده شده است. اما در روش دوم از انتصاب مستقیم عبارت با قاعده که با استفاده از دو کاراکتر “/” مشخص میگردد استفاده شده است. در زبان ActionScript 3، برای مشخص کردن یک عبارت با قاعده، مستقیماً میتوان آن را در بین دو کاراکتر / تایپ نمود.
مثال: الگوی جستجو به دنبال کلمه hello
var R1:RegExp = /hello/; var R2:RegExp = new RegExp("hello");
مثال: الگوی جستجو به دنبال یک عدد تک رقمی
var R1 : RegExp = new RegExp("\\d") ; var R2 : RegExp = /\d/ ;
مهمترین بخش از یادگیری عبارات با قاعده، کسب مهارت در استفاده از کاراکترهای کنترلی و ترتیب استفاده از آنها میباشد. با استفاده از این کاراکترها به سادگی میتوان الگوهایی برای تطبیق اعداد، رشتههای بسته، عبارات و موارد دیگر تعیین نمود.
در جدول زیر به بررسی مهمترین کاراکترهای مورد استفاده در عبارات با قاعده میپردازیم. در ستون مثالهای جدول زیر، ابتدا با استفاده از کاراکتر مورد نظر یک الگوی باقاعده ایجادکرده و سپس مواردی از تطابق و عدم تطابق رشتهها با آن الگو ذکر میکنیم:
هم اکنون با ذکر چند مثال به بررسی کاربرد الگوهای عبارات با قاعد میپردازیم:
مثال 1: بررسی وجود کلماتی مثل test-1 ، Test-2، TEst-3 و غیره:
var R1: RegExp = /test-\d/i; var R2: RegExp = new RegExp("test-\\d", "i");
مثال 2: تشخیص کلمه the در یک جمله و بدون حساسیت به حروف بزرگ و کوچک:
var R: RegExp = /the/i ;
مثال 3: تشخیص تمام عباراتی که در بین گیومه آمدهاند و استفاده از حالت پیشرفته عبارات با قاعده که اجازه فاصلهگذاری در بین کاراکترهای عبارت با قاعده را فراهم مینماید:
var R: RegExp = /"[^"]*"/x;
مثال 4: تشخیص آدرسهای ایمیل که به com یا org ختم میشوند.
var R: RegExp = /\w*@\w*\.[org | com]/gxi;
مثال 5: تشخیص هر دو کلمهای که بین آنها خط فاصله باشد.
var R:RegExp = /(\w+) \- (\w+)/x;
مثال 6: تشخیص تمام کلماتی که با حروف a تا z یا A تا Z شروع شده و به اعداد ختم میشوند:
var R:RegExp = /[a-zA-Z]+\d+/g ;