آشنایی و نحوه کار با رشتهها (Strings) در JavaScript
یکی از مهمترین و پرکاربردترین انواع دادهها در هر زبان برنامهنویسی، رشتهها (Strings) هستند. رشتهها در واقع مجموعهای از کاراکترها هستند که برای نمایش متنها و اطلاعات متنی در برنامهها استفاده میشوند. در جاوااسکریپت، رشتهها نقش حیاتی در توسعه اپلیکیشنهای وب ایفا میکنند. آشنایی با نحوه کار با رشتهها به شما کمک میکند تا بتوانید به راحتی اطلاعات متنی را مدیریت و پردازش کنید.
تعریف Strings در JavaScript
در جاوااسکریپت ، Strings به عنوان متنهایی که در داخل نقلقولها قرار میگیرند تعریف میشوند. شما میتوانید از نقل قولهای تک (‘) یا نقل قولهای دو (“) برای تعریف رشتهها استفاده کنید. همچنین از بکتیکها (`) نیز برای ایجاد رشتههای چند خطی و استفاده از قابلیت Template Literals بهره گرفته میشود.
let singleQuoteString = 'This is a string with single quotes.';
let doubleQuoteString = "This is a string with double quotes.";
let templateLiteralString = `This is a string using backticks.`;
طول رشته (String Length)
برای یافتن طول یک رشته (تعداد کاراکترها)، میتوانید از ویژگی .length استفاده کنید.
let str = "Hello, JavaScript!";
console.log(str.length); // 18
دسترسی به کاراکترهای یک رشته
شما میتوانید با استفاده از اندیسها (Index) به کاراکترهای یک رشته دسترسی داشته باشید. اندیسها از صفر شروع میشوند. برای دسترسی به یک کاراکتر خاص میتوانید از عملگر براکت [ ] یا تابع ()charAt استفاده کنید.
let str = "JavaScript";
console.log(str[0]); // 'J'
console.log(str.charAt(1)); // 'a'
تغییرناپذیری رشتهها (Immutability of Strings)
یکی از ویژگیهای مهم رشتهها در JavaScript این است که تغییرناپذیر (immutable) هستند. این بدان معناست که پس از تعریف یک رشته، نمیتوان محتوای آن را مستقیماً تغییر داد. به جای تغییر مستقیم یک کاراکتر، باید رشتهای جدید ساخته شود و برای ساخت یک رشته جدید میتوان از روشهایی که در ادامه به آنها اشاره شده است استفاده کرد.
let str = "Hello";
str[0] = 'h'; // این تغییر نخواهد کرد
console.log(str); // همچنان "Hello" است
عملیاتهای متداول بر روی رشتهها
JavaScript امکانات مختلفی را برای کار با Strings فراهم میکند. در ادامه برخی از پرکاربردترین عملیاتها و توابع رشتهای را بررسی میکنیم.
اتصال رشتهها (Concatenation)
برای اتصال دو یا چند رشته به یکدیگر، میتوانید از عملگر + یا از متد ()concat استفاده کنید. که به این مورد در مقاله “آموزش JavaScript قسمت سوم” نیز اشاره شده است.
let firstName = "John";
let lastName = "Doe";
let fullName = firstName + " " + lastName;
console.log(fullName); // "John Doe"
یا با استفاده از ()concat
console.log( 'Code is Poetry' );let fullName = firstName.concat(" ", lastName);
console.log(fullName); // "John Doe"
تغییر حروف (Changing Case)
جاوااسکریپت دو متد برای تغییر حروف رشتهها به حروف بزرگ یا کوچک فراهم میکند، مانند:
()toUpperCase
: تبدیل تمامی کاراکترها به حروف بزرگ
()toLowerCase
: تبدیل تمامی کاراکترها به حروف کوچک
let text = "JavaScript";
console.log(text.toUpperCase()); // "JAVASCRIPT"
console.log(text.toLowerCase()); // "javascript"
برش رشتهها (Substring or Slice)
برای استخراج بخشی از یک رشته، میتوان از متدهای ()slice() ،substring یا ()substr استفاده کرد.
slice(start, end)
یک بخش از رشته را بین اندیسهای مشخص برمیگرداند (اندیس پایانی شامل نمیشود).
substring(start, end)
مشابه ()slice عمل میکند اما با تفاوتهای جزئی.
substr(start, length)
تعداد مشخصی از کاراکترها را از موقعیت شروع استخراج میکند.
let str = "Hello, World!";
console.log(str.slice(0, 5)); // "Hello"
console.log(str.substring(7, 12)); // "World"
console.log(str.substr(7, 5)); // "World"
جایگزینی کاراکترها (Replace)
برای جایگزینی یک بخش از رشته، میتوان از متد ()replace استفاده کرد. این متد اولین تطابق را پیدا کرده و جایگزین میکند.
let str = "Hello, World!";
let newStr = str.replace("World", "JavaScript");
console.log(newStr); // "Hello, JavaScript!"
برای جایگزینی تمامی تطابقها، از عبارتهای با قاعده (Regular Expressions) استفاده کنید.
let text = "apple, apple, apple";
let newText = text.replace(/apple/g, "orange");
console.log(newText); // "orange, orange, orange"
جستجو در رشته (Search)
برای جستجو و یافتن موقعیت یک رشته در داخل یک رشته دیگر، میتوان از متدهای ()indexOf یا ()search استفاده کرد. همچنین برای یافتن تمامی تطابقها میتوان از عبارتهای با قاعده (Regular Expressions) استفاده کرد.
let text = "Hello, World!";
console.log(text.indexOf("World")); // 7
حذف فاصلههای اضافی (Trim)
برای حذف فاصلههای اضافی از ابتدا و انتهای یک رشته، میتوان از متد ()trim استفاده کرد. برای مثالها و تمرینهای بیشتر به سایت W3schools مراجعه کنید.
let str = " Hello, JavaScript! ";
console.log(str.trim()); // "Hello, JavaScript!"
تقسیم رشتهها (Split)
متد ()split به شما اجازه میدهد که یک رشته را بر اساس یک جداکننده به چند بخش تقسیم کنید.
let str = "apple, banana, cherry";
let fruits = str.split(", ");
console.log(fruits); // ["apple", "banana", "cherry"]
استفاده از Template Literals
یکی از ویژگیهای جدید JavaScript در ES6، Template Literals است که امکان نوشتن رشتههای چند خطی و همچنین جاگذاری متغیرها به صورت داخلی در Strings را فراهم میکند. برای استفاده از این قابلیت، رشته را در داخل بکتیکها (`) قرار میدهیم و از ${} برای درج متغیر یا محاسبات استفاده میکنیم.
let name = "John";
let age = 30;
let message = `My name is ${name} and I am ${age} years old.`;
console.log(message); // "My name is John and I am 30 years old."