کاربرد Regular Expression در جاوااسکریپت

دوشنبه 30 آذر 1394

در این مقاله به همراه مثال به توضیح کاربرد عبارات منطقی یا Regular Expression در جاوا اسکریپت خواهیم پرداخت .عبارات با قاعده یا Regular Expression که به صورت مختصر به آن Regex هم گفته می شود در اکثر زبان های برنامه نویسی کاربرد دارند.در regex یک الگو یا Pattern تعریف می کنیم.

کاربرد Regular Expression در جاوااسکریپت

اگر بخواهیم در یک متنی عبارتی را جستجو کنیم به راحتی می توانیم از توابع Find و Replace استفاده کنیم اما اگر قصد جستجوی ساختاری منطقی را داشته باشیم این کار به راحتی با توابع مذکور قابل انجام نیست .

عبارات با قاعده یا Regular Expression که به صورت مختصر به آن Regex هم گفته می شود در اکثر زبان های برنامه نویسی کاربرد دارند.در regex یک الگو یا Pattern تعریف می کنیم .در الگو نشانه های معناداری وجود دارند که در زیر به برخی از آنها اشاره می کنیم .

براکت:هر تعداد کاراکتر می توان داخل براکت قرار داد.اما هر براکت فقط با یکی از این کاراکتر ها منطبق خواهد شد.علامت + به معنای تکرار حداقل یک بار و *  به معنای حداقل صفر بار است .

علامت سوال

اگر از این علامت استفاده کنیم به معنای اختیاری بودن آن کاراکتر خواهد بود .
{ } کروشه یا آکولاد
تعداد تکرار درون آن ذکر می شود.

\d به معنای digit یا رقم است .که یک رقم بین صفر تا نه را شامل می شود.\w به معنای یک حرف است .\s به معنایSpace  است . \tبه معنای Tab  است . \r و \n  کاراکتر های رفتن به خط بعد هستند.

پرانتز برای گروه بندی به کار می رود.
تا به اینجا دانستیم که regular Expression برای پیدا کردن الگوی خاصی در یک متن مورد استفاده قرار می گیرد.
Modifiers چیست؟

از این خاصیت برای مشخص کردن تطبیق در الگو استفاده می شود .این تطابق به حروف بزرگ و کوچک و همچنین تطابق سراسری استفاده می شود.

i – اگر به کار برود یعنی به حروف بزرگ و کوچک حساسیت نداریم

g- نشان دهنده یک تطابق سراسری است .و تمامی تطابق ها را پیدا می کند و با پیدا کردن اولین تطابق متوقف نمی شود.

m- مشخص کننده تطابق چند خطی است .

در ادامه مثال هایی جهت روشن تر شدن مطلب ذکر می کنیم

برای جستجوی عبارت برنامه نویسان در کد زیر می توانیم به صورت زیر عمل کنیم

<script>
    var str = "برنامه نویسان :مرجع تخصصی برنامه نویسان";
    var patt1 = /برنامه نویسان/i;
    document.write(str.match(patt1));
</script>

برای جستجوی یک عبارت به صورت عمومی از g استفاده می کنیم .در صفحه webform2 در داخل اسکریپت کد زیر را می نویسیم

  <script>
                var str = "Is this all there is?";
                var patt1 = /is/g;
                document.write(str.match(patt1));
            </script>

این کد هر جا عبارت مورد نظر را ببیند چاپ می کند و با اولین نتیجه متوقف نمی شود

مورد بعد که می خواهیم با هم تست کنیم متد متد  test است !این متد در داخل یک عبارت به جستجو می پردازد اگر چیزی پیدا کند مقدار True و در غیر اینصورت False بر میگرداند.

  <script>
        var patt1 = new RegExp("م");
        document.write(patt1.test("فرم ورک دات نت بسیار کاربردی می باشد"));
    </script>

متد بعدی  exec است. این متد اگر عبارتی را که در متن جستجو می کند وجود داشت همان عبارت را بر می گرداند به کد زیر توجه کنید .این متد در صفحه webform4 تست شده است .
 

   <script>
    var patt1=new RegExp("م");
    document.write(patt1.exec("فرم ورک دات نت بسیار کاربردی می باشد"));

       </script>
فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید