آموزش متدهای رشته در جاوا اسکریپت به زبان ساده با مثال و کد
«رشته» (استرینگ | String) از یک سری کاراکتر تشکیل شده است که برای نمایش متن در برنامه نویسی استفاده میشود. رشتهها میتوانند شامل حروف، اعداد و کاراکترهای خاص باشند که آنها را به نوعی داده همهکاره تبدیل میکند. درک چگونگی دستکاری کارآمد رشتهها برای کارهای برنامه نویسی بسیار اهمیت دارد که این کار با استفاده از متدهای رشته قابل انجام است. در این مطلب از «مجله فرادرس» این بار قصد داریم که نحوه دستکاری رشتهها را با متدهای رشته در جاوا اسکریپت مورد بررسی قرار دهیم.
- میآموزید رشته در جاوا اسکریپت چیست و چگونه ساخته میشود.
- یاد میگیرید متدهای مختلف رشته در جاوا اسکریپت چگونه عمل میکنند.
- با کاربرد متدهای concat، toLowerCase و toUpperCase در رشتهها آشنا میشوید.
- میتوانید نقش متدهای Includes، indexOf، startsWith و endsWith را تشخیص دهید.
- یاد میگیرید کاربرد متدهای Slice، Substring، Split و Replace را بهدرستی بهکار ببرید.
- نکات مهم و متدهای تخصصی مانند Match، Test، Trim و Repeat را میآموزید.


این مطلب با هدف آشنایی کاربران با اصول کار با رشتهها در JavaScript نگارش شده است و در آن مفاهیم اساسی مانند متدهای متداول برای اصلاح و دستکاری مقادیر رشته به صورت کامل پوشش داده شده است. این مطلب شامل هر دو متد رشته داخلی و تکنیکهای اضافی برای انجام کارهای مختلف در رشتهها خواهد بود. در پایان مطالعه این مطلب، خوانندگان درک نسبتاً مطلوبی از اصول رشتهها در جاوا اسکریپت و متدهای کلیدی مورد استفاده برای دستکاری آنها خواهند داشت.
مفهوم رشته ها در جاوا اسکریپت
رشته در جاوا اسکریپت نوعی داده است که دنبالهای از کاراکترها را نشان میدهد. این کاراکترها میتوانند شامل حروف، اعداد، نمادها، کلمات یا حتی جملات کامل باشند. به عبارت سادهتر، رشتهها همان چیزی هستند که برای مدیریت و کار با متن در دنیای کدنویسی استفاده میشوند و میتوانند هر کاراکتری از مجموعه «یونیکد» (Unicode) را در خود جای دهند. در اصل رشته در جاوا اسکریپت و در سایر زبانهای برنامه نویسی به عنوان راهی برای بیان اطلاعات به صورت متن است. این نوع داده با انواع دادههای عددی مانند intکه فقط میتواند مقادیر عددی را نگه دارد، متفاوت است. از سوی دیگر، رشتهها همهکاره هستند و میتوانند طیف وسیعی از کاراکترها را شامل شوند.
رشتهها به دلیل انعطافپذیری خود، نقش مهمی در توسعه نرمافزار در صنایع مختلف و زبانهای برنامهنویسی دارند. در جاوا اسکریپت بیش از ۳۰ متد متمایز برای تعامل با مقادیر رشته وجود دارد. این متدهای رشته در جاوا اسکریپت ابزارهای قدرتمندی هستند که برنامه نویسان از آنها برای دستکاری مؤثر متن در کد خود استفاده میکنند.

نحوه ایجاد رشته در جاوا اسکریپت
ایجاد رشته در جاوا اسکریپت بسیار ساده است و کاربر میتواند این کار را با قرار دادن متن در داخل کوتیشنهای تکی (' ')، گیومههایدوتایی (" ") و همچنین بک تیک (` `) انجام داد. در مثال زیر نحوه انجام این کار آمده است:
این رشتهها، خواه با بکتیک یا کوتیشن ساخته شوند، اساساً یکسان هستند. با مقایسه رشتهها میتوان به این واقعیت پی برد.
بکتیکها قالب خاصی برای تولید رشته هستند. رشتههایی که با بکتیک ایجاد میشوند، مانند اعداد و بولیها، مقادیر اولیه در نظر گرفته میشوند. مقادیر اولیه تغییرناپذیر بوده و فاقد متد یا ویژگی هستند.
راه دیگری برای ایجاد رشتهها با استفاده از سازنده Stringوجود دارد. هنگامیکه این سازنده با کلمه کلیدی newاستفاده میشود و رشتهای را به عنوان شی تولید میکند. بدون کلمه کلیدی newمقدار ارائه شده به نوعی رشته اولیه تبدیل خواهد شد که مثال زیر بیانگر این واقعیت است:
عملگر typeofبه کاربر کمک میکند تا نوع داده را تعیین کند در حالی که str1و str2ممکن است مشابه به نظر برسند، مقایسه آنها falseبازمیگرداند زیرا اساساً مقادیر متفاوتی دارند.
متدهای رشته در جاوا اسکریپت
درک نحوه استفاده حداکثری از رشتهها در جاوا اسکریپت ضروری است. یکی از کارهای رایجی که اغلب کاربران در حال انجام آن هستند این است که رشته را مطابق با نیازهای خود تغییر دهند. برای سادهسازی این فرآیند، جاوا اسکریپت نوعی شی رشته ارائه میکند که به کاربر امکان میدهد متدها و ویژگیها را برای دستکاری مقادیر رشته اعمال کند.
رشتهها همچنین با جلوگیری از تزریق کدهای مخرب، نقش مهمی در ایمنسازی برنامهها یا نرمافزارها ایفا میکنند. این فرآیند محافظتی شامل استفاده از عبارات منظم است که معمولاً به عنوان Regex شناخته میشوند. به بیان ساده، عبارات منظم الگوهایی هستند که روی رشتهها اعمال میشوند تا اطمینان حاصل شود که الزامات قالببندی خاص را برآورده میکنند. در ادامه این مطلب از مجله فرادرس مهمترین متدهای رشته در جاوا اسکریپت مورد بررسی و بازبینی قرار خواهند گرفت.
متدهای داخلی رشته در جاوا اسکریپت
برخلاف برخی از زبانهای برنامهنویسی که رشتهها به عنوان اشیایی با ویژگیها و متدهای داخلی مختلف در نظر گرفته میشوند، جاوا اسکریپت رشتهها را به عنوان انواع دادههای اولیه میبیند. این بدان معناست که به طور پیشفرض، رشتهها با مجموعهای از متدها یا ویژگیهای از پیش تعریفشده همراه نیستند. با این حال جاوا اسکریپت هنوز برای کار با رشتهها از متدها و چند تا ویژگی پشتیبانی میکند. اگرچه رشتهها اشیا نیستند اما وقتی اعمالی روی آنها انجام بگیرد، مانند اشیایی با عملکرد پیشرفته عمل میکنند.
این قابلیت پیشرفته به وسیله عنصری به نام شی رشته در کتابخانهها و فریمورکهای جاوا اسکریپت گنجانده است. نکتهای که باید در این رابطه به آن توجه کرد این است که استفاده از این شی برای ایجاد اشیای رشتهای میتواند منجر به پردازش کندتر و نتایج بالقوه غیرمنتظره شود. بنابراین، استفاده از آنها با احتیاط توصیه میشود.
نحوه استفاده از متدهای رشته در جاوا اسکریپت
کار با متدهای رشته ای در جاوا اسکریپت آنقدرها که در ابتدا به نظر میرسد پیچیده نیست. بیایید آن را با مثالی ساده بررسی کنیم تا همهچیز روشن شود. استفاده از متدهای رشته شامل درک سینتکس آن است که در زیر این سینتکس با ارائه مثالی توضیح داده شده است. قطعه کد زیر را در نظر بگیرید:
ساختار فوق، پیکره اساسی هر متد رشتهای در جاوا اسکریپت است. این ساختار با متغیری شروع میشود که دارای نوعی مقدار رشته اولیه است. برای اعمال متد روی متغیر رشته، از علامت نقطه استفاده خواهد شد، متد مورد نظر اضافه شده و با پرانتز و نقطهویرگول نتیجه آن قابل بازیابی است. حال، نمونهن استفاده از متد trimرا در زیر خواهیم دید:
استفاده از متدهای رشته در جاوا اسکریپت ساده است اما اگر متدی به یک یا چند پارامتر نیاز داشته باشد باید چطوری از آن استفاده کنیم؟ در چنین مواردی، متد معیارهای خاصی را میپذیرد که این معیارها یا پارامترها مشخص میکنند با رشته چگونه رفتار شود و این واقعیت کمی به پیچیدگی ماجرا منجر میشود. بیایید مثال را با متدی که دارای پارامتر است بررسی کنیم. کد زیر همان نتیجه قبلی را به دست میآورد و هر فضای خالی را حذف میکند اما این بار با استفاده از متد replaceکه قطعه کد آن به صورت زیر است:
در مثال بالا، متد replaceدو پارامتر دارد: اولی چیزی است که متد باید به دنبال آن باشد و دومی مقداری است که باید با رشته هدف جایگزین شود. اکنون که اصول متدهای رشتهای و نحوه استفاده از آنها را توضیح دادیم، بیایید فهرست جامعی از ویژگیها و متدهای رشته در جاوا اسکریپت را بررسی کنیم.

فهرست بندی رشته در جاوا اسکریپت
در جاوا اسکریپت، میتوان با استفاده از اندیسهای عددی که از صفر شروع شده و با استفاده از علامت []مشخص میشوند، به کاراکترهای جداگانه در رشته دسترسی ایجاد کرد. بیایید با مثالی این مفهوم را تشریح کنیم:
همچنین، میتوانید از متد charAtبرای بازیابی کاراکتر خاص در رشته به صورت زیر استفاده کرد:
توجه به این نکته ضروری است که بر خلاف برخی از ساختارهای داده غیر ابتدایی، مانند آرایهها در جاوا اسکریپت، نمیتوان کاراکترهای خاصی را در رشته به طور مستقیم تغییر داد که مثال زیر بیانگی این واقعیت است:
با این حال تلاش برای تغییر مستقیم رشته به دلیل ماهیت اولیه آن کار نخواهد کرد که مثال زیر برای بیان این هدف است:
در مثال فوق مقدار متغیر str همان Larchباقی میماند و نمیتوان مستقیماً آن را تغییر داد. در عوض، میتوان مقدار جدیدی به متغیر اختصاص داد. طبق مثال زیر:
این تمایز در مدیریت مقادیر اولیه در جاوا اسکریپت به وضوح قابل مشاهده است.
ویژگی طول رشته در جاوا اسکریپت
در جاوا اسکریپت میتوان تعداد کاراکترهای رشتهای را با استفاده از ویژگی lengthتعیین کرد. مثال زیر نحوه استفاده از این ویژگی را بیان میکند:
ویژگی lengthتعداد کاراکترها را در رشته شامل فاصلهها ارائه میدهد. در مثال فوق جمله از ۳۸ کاراکتر تشکیل شده است. مهم است که توجه داشته باشیم که با توجه به اینکه اندیسبندی در جاوا اسکریپت از صفر شروع می شود، بنابراین آخرین کاراکتر در جمله فوق دارای اندیس یا شاخص ۳۷ خواهد بود (مقداری که با کم کردن ۱ واحد از طول به دست میآید).

الحاق رشته ها در جاوا اسکریپت
در جاوا اسکریپت میتوان دو یا چند رشته را با استفاده از عملگر الحاق که علامت مثبت (+) است، به همدیگر الحاق کرد که مثال زیر برای بیان این هدف است:
در مثال فوق، نوعی رشته اضافی بین «a» و «b» قرار داده شده است تا اطمینان حاصل شود که جمله نهایی فاصله درستی دارد. همچنین میتوان با استفاده از عملگر تخصیص جمع (+=) به نتیجه مشابهی رسید:
با +=، به متغیر aمقدار فعلی آن به اضافه مقدار سمت راست عملگر اختصاص داده میشود. اکنون aکل جمله را نگه میدارد. در مثال قبلی، جمله کامل در متغیر دیگری به نام cذخیره شد. همچنین اگر سعی شود نوعی داده عددی را به رشته متصل کرد، جاوا اسکریپت به طور خودکار آن عدد را به نوعی مقدار رشتهای تبدیل میکند که مثال زیر این موضوع را بیان کرده است:
در مثال فوق، عدد ۳ به صورت اجباری به نوعی رشته تبدیل می شود و در نتیجه جمله The 3 Musketeersتولید خواهد شد.
ویژگی مقایسه رشته ها در جاوا اسکریپت
در زبان برنامهنویسی جاوا اسکریپت میتوان رشتهها را بر اساس ترتیب و طول الفبای آنها با استفاده از عملگرهای مقایسهای، مورد مقایسه قرار داد که نتیجه آن نوعی داده بولی خواهد بود. در اینجا نمونهای از مقایسه رشتهها بر اساس حروف الفبا آورده شده است:
در مثال فوق مقایسه حرفبهحرف از اولین کاراکتر شروع می شود و از ترتیب یونیکد پیروی میکند. برای مثال، Cقبل از bقرار میگیرد، زیرا حروف بزرگ قبل از حروف کوچک در جدول یونیکد قرار دارند. به طور مشابه، '$' < '&'به TRUE ارزیابی میشود زیرا $قبل از &در جدول یونیکد قرار میگیرد.
اگر هر کاراکتر در رشته با همتای خود در رشته دیگر مطابقت داشته باشد و رشتهها دارای طول یکسان باشند، آنها برابر تلقی میشوند. در غیر این صورت، رشته بلندتر بزرگتر در نظر گرفته میشود. مثال زیر برای بیان این هدف اهمیت زیادی دارد:
اگر نیاز به مقایسه طول دو رشته وجود داشته باشد، میتوان از ویژگی lengthبه صورت زیر برای این هدف استفاده کرد:
الفبای الگو در جاوا اسکریپت
«الگوهای واقعی یا الفبای الگو» (Template literals) که با استفاده از بکتیک (`) ایجاد میشوند، دارای ویژگیهای خاصی هستند که کار با رشتهها را راحتتر میکنند. یکی از ویژگیهای قابلتوجه، توانایی نمایش متن در چندین خط است. برای درک بهتر این فرایند مثال را در نظر بگیرید:
در مثال فوق متن نمایش داده شده، فاصله استفاده شده هنگام نوشتن رشته را منعکس میکند و حفظ قالب چندخطی را آسان خواهد کرد. در مقابل، رشتههای سنتی نیاز به استفاده از کاراکتر خط جدید (\n) برای دستیابی به نتیجه مشابه دارند:
هنگام ترکیب متغیرها در رشتههایی که با کوتیشن تکی یا دوتایی ایجاد میشوند، معمولاً از الحاق استفاده میشود، همانطور که قبلا نشان داده شد:
با این حال، الفبای الگو، راهحل ظریفتری به نام درونیابی رشتهای را معرفی میکنند که توجه به مثال زیر برای بیان این هدف است:
قابلیت درونیابی رشتهای به کاربران اجازه میدهد تا متغیرها یا عبارات را با استفاده از ${}در الگوهای الفبایی درج کنند. با این کار خوانایی کد را با قرار دادن مستقیم محتوا در متن افزایش میابد. متغیرها یا هر عبارتی را میتوان در این مکان نگهدارندهها استفاده کرد که به صورت خودکار به رشته تبدیل میشوند. این ویژگی کد را انعطافپذیرتر و درک آن را آسان میکند.
آموزش متدهای رشته در جاوا اسکریپت
قبلاً اشاره کردیم که انواع دادههای اولیه مانند رشتهها متد یا ویژگی ندارند. با این حال، هنگامیکه از متدی استفاده شد یا به نوعی ویژگی روی رشته دسترسی ایجاد شود، جاوا اسکریپت نوعی «شی پوشاننده موقت» (Wrapper Object) در پشتصحنه ایجاد میکند. این شی Wrapper به متدها و خصوصیات اجازه میدهد تا روی رشته کار کند. هنگامیکه عملیات انجام شد، شی Wrapper دور انداخته میشود. به عبارت سادهتر، حتی اگر انواع دادههای اولیه ذاتاً متدهایی ندارند، جاوا اسکریپت ما را قادر میسازد تا از آنها در این فرآیند پشتصحنه استفاده کنیم. تا به اینجای مطلب ویژگیهای رشته در جاوا اسکریپت مورد بررسی واقع شدند. در بخشهای زیر متدهای رشته در جاوا اسکریپت مورد بررسی واقع خواهند شد.
متد concat در جاوا اسکریپت
متد Concat در جاوا اسکریپت به نتیجهای مشابه با استفاده از عملگرهای +و +=میرسد. این متد رشته در جاوا اسکریپت یک یا چند رشته را که به عنوان آرگومان ارائه شدهاند، با رشتهای که متد بر روی آن اعمال میشود ترکیب میکند. نتیجه رشتهای جدید خواهد بود که نشاندهنده الحاق این رشتهها است. بیایید مثالی از بخش الحاق رشتهها را دوباره بررسی کنیم:
در مثال فوق، از متد concatبرای الحاق رشتههای موجود در متغیرهای aو bاستفاده میشود. همچنین توجه به مثال زیر برای درک بهتر متد concatخالی از لطف نیست:
در مثال بالا، متدconcatرشته اصلی strرا با متن ارائه شده ترکیب میکند و در نتیجه نوعی رشته جدید ایجاد میشود. این متد از میان متدهای رشته در جاوا اسکریپت برای اتصال رشتهها به روشی مستقیم مفید است.
متدهای toLowerCase و toUpperCase در جاوا اسکریپت
در شرایط خاص، ممکن است لازم باشد حروف رشتهها را برای مقایسه مناسب، ذخیرهسازی ثابت یا اهداف دیگر به صورت سفارشی تنظیم کرد. متدهای toLowerCaseو toUpperCaseبرای این منظور مفید هستند و به کاربر امکان میدهند بدون تغییر رشته اصلی رشته را به حروف کوچک یا بزرگ تبدیل کند. در اینجا مثالی با استفاده از متد toLowerCaseآورده شده است:
همچنین مثال زیر برای درک متد toUpperCaseمهم است:
در مثالهای فوق، متدهای نامبرده حروف رشته sentence را بدون تغییر محتوای اصلی آن تبدیل میکنند. متد toLowerCaseهمه حروف را به حروف کوچک تبدیل میکند، در حالی که toUpperCaseآنها را به حروف بزرگ تبدیل خواهد کرد. این متدها زمانی مفید هستند که کاربر نیاز دارد حروف بزرگ را برای اهداف مختلف در کد خود استفاده کند.

متد Includes در جاوا اسکریپت چیست؟
متد Includes از میان متدهای رشته در جاوا اسکریپت بررسی میکند که آیا رشتهای مشخص که به عنوان آرگومان ارائه شده است، در رشته دیگری وجود دارد یا خیر. این متد در اصل نوعی جستجوی حساس به حروف کوچک و بزرگ انجام میدهد و نوعی مقدار بولی را بازمیگرداند. همچنین میتوان آرگومان دوم را نیز برای آن مشخص کرد که اندیسی را که جستجو باید از آن در رشته اصلی شروع شود را نشان میدهد. مثال زیر برای درک این متد مهم است:
در مثال بالا، متد includesبرای بررسی وجود عبارات خاص در رشته sentenceاستفاده میشود. خط اول Falseرا بازمیگرداند زیرا look upدر جمله یافت نمیشود. همچنین خط دوم این مثال، Trueرا از آنجایی که «look on» در رشته هدف وجود دارد بازیابی میکند و در آخرسر، خط سوم که جستجو را از اندیس ۸ شروع میکند، «True» را بازمیگرداند. همچنین توجه به مثال زیر هم برای درک بهتر این متد خالی از لطف نیست:
در مثال بالا، متد includesبررسی میکند که آیا رشته دارای مقدار مشخص شده Timelordاست یا خیر، در صورت وجود مقدار Trueبازمیگرداند. این متد برای جستجوی زیررشتهها در رشته بزرگتر مفید است.
متد indexOf در جاوا اسکریپت چیست؟
متد IndexOf در جاوا اسکریپت به دنبال زیررشته خاص میگردد و اندیس اولین وقوع آن را در رشته اصلی ارائه میکند. ممکن است در استفاده از آن پارامتری اختیاری برای تعیین شاخص شروع جستجو لازم باشد. مثال زیر نحوه استفاده از این متد رشته را بیان میکند:
در مثال فوق، متد indexOfبرای یافتن موقعیت حرف «l» در رشته «جمله» sentenceاستفاده میشود. خط اول «1» را بهعنوان «l» بازمیگرداند که ابتدا در اندیس ۱ یافت میشود. خط دوم جستجو را از اندیس ۲ شروع میکند و ۷ را بازمیگرداند و در نهایت خط سوم از اندیس ۸ شروع شده و ۳۴ را به عنوان نتیجه ارائه میکند. اگر زیر رشته پیدا نشود، مانند خط آخر، «۱-» را بازمیگرداند. باید به این نکته توجه داشت که جستجو به حروف کوچک و بزرگ حساس است.

متدهای startsWith و endsWith در جاوا اسکریپت
متد StartsWith در جاوا اسکریپت ارزیابی میکند که آیا رشتهای خاص با دنباله خاصی از کاراکترها شروع میشود و در نتیجه نوعی مقدار بولی ارائه میکند. این عملیات به حروف کوچک و بزرگ حساس است. مثال زیر نحوه استفاده از این متد از میان متدهای رشته در جاوا اسکریپت را نشان میدهد:
در مثال فوق، startsWithبرای تأیید اینکه آیا رشته dishبا دنبالههای خاصی شروع میشود استفاده خواهد شد. خط اول trueرا برمیگرداند زیرا Lemonبا Lemشروع میشود، در حالی که خط دوم به دلیل حساسیت به حروف بزرگ، falseرا بازمیگرداند. خط سوم، پس از تبدیل رشته به حروف کوچک، trueرا بازیابی میکند. خطوط چهارم و پنجم ارزیابی میکنند که آیا cuرشته را شروع میکند یا از یک اندیس خاص (۶) شروع میشود و مقادیر بولی را بر این اساس ارائه میکند.
به طور مشابه، متد endsWithبررسی میکند که آیا رشتهای خاص با دنباله تعیینشده از کاراکترها خاتمه مییابد و نوعی مقدار بولی را نیز بازمیگرداند که مثال زیر برای بیان این هدف است:
در مثال بالا، خط اول trueرا بازمیگرداند زیرا Lemon curryبا ryبه پایان میرسد. خط دوم، با آرگومان اختیاری که موقعیت پایانی را مشخص میکند، trueرا نیز بازمیگرداند زیرا رشته فرعی onرشته را پایان میدهد. این متدهای رشته در جاوا اسکریپت برای بررسی الگوهای شروع و پایان رشتهها مفید هستند.
متدهای Slice و Substring
متدهای Slice و Substring در جاوا اسکریپت به کاربر این امکان را میدهند که بخشی از رشته را استخراج کرده و نوعی رشته جدید بدون تغییر محتوای اصلی ایجاد کند. برای استفاده از این متدها، اندیس اولین کاراکتر در رشته استخراجشده به عنوان اولین آرگومان قرار داده میشود. آرگومان دوم اندیس کاراکتر اول است که باید حذف شود. مثال زیر برای بیان این هدف است:
در مثالها فوق، هم «slice()» و هم «substring()» برای استخراج بخشهای خاصی از رشته استفاده میشوند. در حالی که این متدها کاملاً مشابه هستند، تفاوتهایی نیز برای آنها وجود دارد. یکی از تمایزها این است که اگر اولین اندیس ارائه شده به «substring()» بزرگتر از اندیس دوم باشد، این دو آرگومان برای اطمینان از اینکه رشته همچنان بازگردانی خواهد شد، مبادله میشوند. در یک سناریوی مشابه، متد «slice()» بهجای آن نوعی رشته خالی بازمیگرداند. مثال زیر برای بیان این هدف است:
در مثل فوق،substringاندیسها را مجدداً مرتب میکند تا نوعی رشته معتبر تشکیل دهد و در نتیجه lookایجاد شود. از سوی دیگر، sliceنوعی رشته خالی را زمانی بازمیگرداند که اندیس اول بزرگتر از دومی باشد.
متد Split از در جاوا اسکریپت چیست؟
متد Split در جاوا اسکریپت برای تقسیم رشته به قطعات کوچکتر بر اساس کاراکتر جداکننده مشخصی استفاده میشود. در نهایت این متد آرایهای حاوی این زیررشتهها را بازمیگرداند. همچنین میتوان آرگومانی اختیاری به این متد ارائه داد که حداکثر تعداد آیتمهایی را که باید در آرایه گنجانده شود را نشان میدهد. مثال زیر برای بیان این هدف است:
در مثال بالا، متد splitروی رشته sentenceبا کاراکتر فاصله به عنوان جداکننده اعمال میشود. خط اول آرایهای را با هر کلمه به عنوان عنصر بازمیگرداند و خط دوم آرایه را محدود میکند تا حداکثر پنج عنصر را در خود داشته باشد. این متد زمانی مفید است که کاربر نیاز دارد رشته را به تکههای جداگانه تقسیم کند، بهخصوص هنگام کار با جملات یا عبارات این متد از متدهای رشته در جاوا اسکریپت بسیار حائز اهمیت است.
متد Match در جاوا اسکریپت
متد Match در جاوا اسکریپت برای جستجوی نوعی الگوی خاص که به عنوان عبارت منظم در رشته تعریفشده است، استفاده میشود. سپس این متد آرایهای حاوی نتایج تطبیق را بازمیگرداند که مثال زیر برای بیان این هدف است:
در مثال بالا، متد matchبا استفاده از دو عبارت منظم مختلف بر روی رشته tongueTwisterاعمال میشود. مورد اول regex1نمونههایی از کلمات مربوط به woodرا پیدا میکند و مورد دوم regex2تلاش میکند تا وقوع woolرا پیدا کند. نتیجه آرایهای از مقادیر منطبق برای اولین regexو nullبرای دوم است، زیرا woolوجود ندارد. اگر به سادگی نیاز به بررسی وجود نوعی الگو در رشته باشد، برای این منظور متد Testمناسبتر است. همچنین توجه به مثال زیر در رابطه با متد matchخالی از لطف نیست:
در مثال بالا، متد matchنوعی شی آرایه را با مقدار منطبق یا matchبازمیگرداند. از عبارات منظم نیز میتوان برای تطبیق الگوی پیچیدهتر استفاده کرد.
متد Test برای رشته های جاوا اسکریپت
متد Test در جاوا اسکریپت برای جستجوی نوعی الگوی خاص که به عنوان عبارت منظم در رشته تعریف میشود، مورد استفاده قرار میگیرد. این متد نوعی مقدار بولی بازمیگرداند که نشان میدهد آیا الگو وجود دارد یا نه. سینتکس این متد از متدهای رشته در جاوا اسکریپت، تقریباً معکوس متد matchاست. مثال زیر برای درک بهتر کار این متد اهمیت زیادی دارد.
در مثال بالا، متد testبا استفاده از دو عبارت منظم مختلف regex1و regex2بر روی رشته tongueTwisterاعمال میشود. اولین regexبه دنبال تغییرات کلمه woodمیشود و دومی تلاش میکند تا موارد woolرا بیابد. این متد trueرا برای regex1و falseرا برای regex2بازمیگرداند و نشان میدهد که آیا الگوها وجود دارند یا خیر. همچنین توجه به مثال زیر هم برای درک بهتر کار متد test خالی از لطف نیست:
در مثال فوق، متد testبررسی میکند که آیا الگوی oدر رشته وجود دارد یا خیر و trueرا از زمانی که الگوی مد نظر پیدا شود، بازمیگرداند.
متد Tostring برای رشته ها در جاوا اسکریپت
متد ToString در جاوا اسکریپت برای تبدیل عدد یا شی رشته به رشته استفاده میشود و در نهایت این متد نمایش رشته مقدار داده شده را بازمیگرداند. مثال زیر برای بیان این هدف است:
در مثال بالا، نوعی متغیر به نام numوجود دارد که حاوی عدد ۹۰۴ است. وقتی متد toStringروی numاعمال میشود، مقدار عددی را به نمایش رشته خود تبدیل میکند. نتیجه، اکنون متغیر numنوعی داده رشته است، سپس به کنسول وارد میشود و ۹۰۴ را نمایش میدهد. این متد زمانی مفید است که باید با اعداد در زمینه رشته کار کارکرده یا آنها را با رشتههای دیگر به هم پیوند داد.
متد Trim در جاوا اسکریپت
متد Trim در جاوا اسکریپت برای حذف فضاهای غیرضروری از ابتدا و انتهای رشته استفاده میشود. در اینجا مثالی با توضیح برای درک بهت کار این متد از متدهای رشته در جاوا اسکریپت آورده شده است:
در مثال فوق، رشته strوجود دارد که در ابتدا حاوی فاصلههای اضافی است. هنگامی که متد trimرا روی این رشته اعمال میکنیم، فضای خالی اصلی و انتهایی را حذف میکند و در نتیجه رشته Welcome to Faradarsبه وجود میآید. سپس رشته تمیز شده به کنسول وارد میشود. این متد مخصوصاً هنگام کار با ورودیهای کاربر یا دادههایی که ممکن است فضاهای غیرعمدی داشته باشند مفید است و نمایشی تمیز و ثابتی از رشته را تضمین میکند.
متد Eval در جاوا اسکریپت
متد Eval در جاوا اسکریپت اجرای کد نوشته شده به صورت رشته را امکانپذیر میکند. در اینجا مثال با توضیح برای درک بهت کار این متد رشته در جاوا اسکریپت آورده شده است:
در مثال فوق، نوعی عبارت رشتهای داریم که حاوی عملیات ریاضی ساده است. با اعمال متد evalدر این رشته، جاوا اسکریپت کدهای درون آن را تفسیر و اجرا میکند. نتیجه، در این مورد، مقدار عددی ۵ بوده که حاصل جمع ۲ و ۳ است. سپس نتیجه نهایی در کنسول ثبت میشود. توجه به این نکته مهم است که استفاده ازevalباید با احتیاط انجام شود زیرا اجرای کد دلخواه میتواند خطرات امنیتی ایجاد کند. به طور کلی توصیه میشود در صورت امکان، متدهای جایگزین به کار گرفته شوند.

متد Replace برای رشته های جاوا اسکریپت
متد Replace در جاوا اسکریپت برای به دست آوردن رشته جدید با جایگزینی بخشی مشخص شده از رشته موجود استفاده میشود. در اینجا یک مثالی همراه توضیح برای درک بهتر نحوه عملکرد رشته replace آورده شده است:
در مثال بالا رشته متنی حاوی Hello Faradarsاست. با اعمال متدreplaceدر این رشته، زیر رشته Faradarsرا جستجو کرده و آن را با Readerجایگزین میکند. رشته به دست آمده Hello Reader!، سپس به کنسول وارد میشود. این متد برای ایجاد جایگزینی در رشتهها، مانند جایگزینی کلمات یا کاراکترهای خاص مفید است.
متد رشته Repeat در جاوا اسکریپت
متد Repeat در جاوا اسکریپت برای کپی کردن رشته معین به تعداد دفعات مشخص شدهای استفاده میشود که مثال زیر درک بهتری از این متد از میان متدهای رشته در جاوا اسکریپت به ما میدهد.
در مثال بالا، نوعی رشته sayHello وجود دارد که حاوی متن Hello Faradarsاست. با اعمال متد repeatبا آرگومان ۳، رشته سه بار تکرار میشود. رشته به دست آمده ٣ بار Hello Faradars، کنسول ثبت میشود. این متد هم زمانی مفید است که کاربر نیاز به ایجاد الگوهای تکراری یا دنبالهای از رشتهها در کد خود دارد.
متد Search در جاوا اسکریپت
از متد Search در جاوا اسکریپت برای یافتن نوعی الگوی خاص در رشته استفاده شده و موقعیت اندیس تطابق اول را بازمیگرداند. مثال زیر درک بهتری از نحوه عملکرد این متد از میان متدهای رشته در جاوا اسکریپت به ما میدهد:
در این مثال، رشته متنی ما حاوی Hello Faradarsاست. سپس متد Searchبرای یافتن موقعیت شاخص در جایی که الگوی فرادرس برای اولین بار در رشته ظاهر میشود، اعمال خواهد شد و خروجی که ۶ است روی کنسول چاپ میشود.
متد Escape در جاوا اسکریپت
متد Escape از لحاظ تاریخی برای رمزگذاری کاراکترهای خاص در رشته برای انتقال در رایانهها و شبکههای مختلف استفاده میشود ولی با این حال، منسوخ شده است. در استاندارهای جدید استفاده از encodeURI برای هدفی مشابه توصیه میشود. مثال زیر برای درک نحوه کار با این متد است:
در مثال بالا، متد escapeبرای رمزگذاری کاراکترهای خاص در رشته I'm John Smith!استفاده میشود. با این حال، مهم است که توجه داشته باشیم که escapeمنسوخ شده و جایگزین مدرنتر و توصیهشده encodeURIاست. مورد دوم در مثال برای رمزگذاری مناسب ارائه شده است.
نکات اضافه در مورد متدهای رشته در جاوا اسکریپت
فهرست فوق از متدهای رشته در جاوا اسکریپت همه متدهای رشتهای در این زبان را پوشش نمیدهد. متدهای بیشتری برای یادگیری وجود دارد. برای مثال متدهای مهم دیگری مانند «padStart» و «padEnd» وجود دارند که ممکن است چندان برای کاربران آشنا نباشند. این متدها به شما کاربران میدهند نوعی رشته در ابتدا یا انتهای مقدار رشتهای دیگر اضافه کند. برای تسلط بر رشتهها و متدهای آنها، تمرین و تکرار بسیار حائز اهمیت است. کاربردهای بیشماری برای رشتهها وجود دارد و متدها میتوانند عملکرد آنها را به شیوههای مختلف افزایش دهند.
همانطور که به مطالعه و بررسی متدهای رشته در جاوا اسکریپت میپردازید، محدودیتها و رفتارهای آنها را درک خواهید کرد. ترکیب متدهای مختلف برای انجام کارهای قدرتمند و رفع نیازهای برنامه هم نکته بسیار حائز اهمیتی است.
کلام پایانی
رشته یک سری کاراکتر است که برای نمایش متن استفاده میشود. در جاوا اسکریپت، رشتهها انواع دادههای اساسی هستند. میتوان آنها را با قرار دادن متن در کوتیشنهای تک، دوتایی یا بکتیک ایجاد کرد. الفبای الگو نوعی ویژگی مفید است که به کد پاکتر به وسیله درونیابی رشتهای اجازه میدهد و ایجاد رشتههای چندخطی را در صورت نیاز تسهیل میکند. از آنجایی که رشتهها نقش مهمی در برنامه نویسی دارند، تسلط بر دستکاری کارآمد آنها ضروری است.
در طول این مطلب از مجله فرادرس، در کنار تعریف رشته و مطالعه ویژگیهای آنها، متدهای رشته در جاوا اسکریپت را همراه با ارائه مثالهایی کاملاً کاربردی مورد بررسی و بازبینی قرار دادیم. همچنین متدهای بسیار بیشتری برای کار با رشتهها در جاوا اسکریپت وجود دارد که در این مطلب به آنها پرداخته نشده است.












