تابع جایگزین کردن کاراکتر ها
هر چی فکر کردم عنوانی بهتر از این به ذهنم نرسید . همه با این تابع آشنا هستید کمی صبر کنید توضیح بدهم متوجه می شوید چه تابعی را می گویم . تابع replace که در اکثر زبان های برنامه نویسی با عناوین مختلف وجود دارد ، یک کاراکتر را دریافت می کند سپس آن را در رشته مورد نظر جستجو کرده و با مقدار دلخواه ما جایگزین می کند . به مثال زیر توجه کنید :
var str = "Visit Snip!"; var res = str.replace("Snip", "snippets.ir");
خط اول متغیر str را با مقدار “Visit Snip!” تعریف می کند . در خط دوم با استفاده از متد replace ، عبارت snip را جستجو کرده و بجای آن مقدار snippets.ir را قرار می دهد و نتیجه را در متغیر res بازتاب می کند . یعنی در پایان رشته ما بصورت زیر می شود :
Visit snippets.ir!
خب تا اینجا که چیز جدید یاد نگرفتیم ! فقط اینجا یک مساله وجود داره ! اینکه در حالت عادی این تابع فقط اولین کاراکتر را جایگزین می کند . به مثال زیر توجه کنید :
var str = "Visit Snip! snip is Good!"; var res = str.replace("Snip", "snippets.ir"); alert(res);
نتیجه ای که می بینید با آن چیزی که انتظار داشتید فرق می کند . نتیجه Visit snippets.ir! snip is Good! هست نه Visit snippets.ir! snippets.ir is Good!
برای حل این مساله بصورت زیر اقدام کنید :
var str = "Visit Snip! snip is Good!"; var res = str.replace(/snip/gi, "snippets.ir"); alert(res);
آیا اکنون به نتیجه دلخواهتان رسیدید؟