JavaScript:متدهای نوع داده متنی یا رشته‌ای در جاوااسکریپت

از ویکی کد
پرش به ناوبری پرش به جستجو
دورهٔ آموزشی جاوااسکریپت
Javascript.jpg
جاوااسکریپت
موارد آموزشی
۱آموزش جاوااسکریپت
۲مقدمه‌ای بر جاوااسکریپت
۳JavaScript:قوانین و اصول اولیه زبان جاوااسکریپت
۴JavaScript:خروجی جاوااسکریپت
۵JavaScript:عبارت‌ها در جاوااسکریپت
۶JavaScript:شیوهٔ نوشتن (Syntax) عبارات یا دستورات در جاوااسکریپت
۷JavaScript:نظرات یا کامنت‌ها (Comments) در جاوااسکریپت
۸JavaScript:متغیرها در جاوااسکریپت
۹JavaScript:عملگرهای جاوااسکریپت
۱۰JavaScript:عملگرهای ریاضی در جاوااسکریپت
۱۱JavaScript:عملگرهای مقداردهی در جاوااسکریپت
۱۲JavaScript:انواع داده‌ها در جاوااسکریپت
۱۳JavaScript:توابع در جاوااسکریپت
۱۴JavaScript:اشیاء (object) در جاوااسکریپت
۱۵JavaScript:رویدادها در جاوااسکریپت
۱۶JavaScript:رشته‌های متنی (string) در جاوااسکریپت
۱۷JavaScript:متدهای نوع داده متنی یا رشته‌ای در جاوااسکریپت
۱۸JavaScript:اعداد در جاوااسکریپت
۱۹JavaScript:متدهای داده‌های عددی در جاوااسکریپت
۲۰JavaScript:آرایه‌ها در جاوااسکریپت
۲۱JavaScript:متدهای آرایه در جاوااسکریپت
۲۲JavaScript:مرتب‌سازی آرایه‌ها در جاوااسکریپت
۲۳JavaScript:متدهای پیمایش آرایه در جاوااسکریپت
۲۴JavaScript:اشیاء تاریخ و زمان در جاوااسکریپت
۲۵JavaScript:فرمت‌های تاریخ و زمان در جاوااسکریپت
۲۶JavaScript:متدهای دریافت تاریخ و زمان در جاوااسکریپت
۲۷JavaScript:متدهای تنظیم زمان و تاریخ در جاوااسکریپت
۲۸JavaScript:شی ریاضی (Math) در جاوااسکریپت
۲۹JavaScript:ایجاد عدد تصادفی در جاوااسکریپت
۳۰JavaScript:مقادیر بولین (Booleans) در جاوااسکریپت
۳۱JavaScript:عملگرهای منطقی و مقایسه‌ای در جاوااسکریپت
۳۲JavaScript:ساختار if else و else if در جاوااسکریپت
۳۳JavaScript:تکه کد Switch در جاوا اسکریپت
۳۴JavaScript:حلقه For در جاوااسکریپت
۳۵JavaScript:حلقه While در جاوااسکریپت
۳۶JavaScript:کلمات کلیدی Break و Continue در جاوااسکریپت
۳۷JavaScript:تبدیل نوع داده‌ها در جاوااسکریپت
۳۸JavaScript:عملیات‌های بیتی در جاوااسکریپت
۳۹JavaScript:عبارات با قاعده در جاوااسکریپت
۴۰JavaScript:خطاها در جاوااسکریپت - رخ دادن خطا و رفع آن
۴۱JavaScript:Scope در جاوااسکریپت
۴۲JavaScript:Hoisting یا جا به جایی کدها در جاوااسکریپت
۴۳JavaScript:استفاده از مد یا حالت سخت‌گیرانه (use strict) در جاوااسکریپت
۴۴JavaScript:کلمه کلیدی This در جاوااسکریپت
۴۵JavaScript:کلمه کلیدی Let در جاوااسکریپت
۴۶JavaScript:ثابت‌ها در جاوااسکریپت
۴۷JavaScript:تعریف توابع به صورت پیکان
۴۸JavaScript:کلاس‌ها در جاوااسکریپت
۴۹JavaScript:اشکال‌زدایی در جاوااسکریپت
۵۰JavaScript:راهنمای استایل و استانداردهای کدنویسی در جاوااسکریپت
۵۱JavaScript:بهترین تمرینات جاوااسکریپت
۵۲JavaScript:اشتباهات رایج در برنامه‌نویسی جاوااسکریپت
۵۳JavaScript:کارایی در جاوااسکریپت
۵۴JavaScript:کلمات رزرو شده در جاوااسکریپت
۵۵JavaScript:ورژن‌های جاوااسکریپت
۵۶JavaScript:ECMAScript 5 - JavaScript 5
۵۷JavaScript:ECMAScript 6 - ECMAScript 2015
۵۸JavaScript:جیسون (JSON) در جاوااسکریپت
فرم‌ها
۱JavaScript:فرم‌ها در جاوااسکریپت
۲JavaScript:API ارزشیابی در جاوااسکریپت
اشیاء (Object)
۱JavaScript:اشیاء در جاوااسکریپت
۲JavaScript:ویژگی‌های اشیاء در جاوااسکریپت
۳JavaScript:متدهای اشیاء در جاوااسکریپت
۴JavaScript:روش‌های دسترسی به شیء در جاوااسکریپت
۵JavaScript:سازنده‌های شیء در جاوااسکریپت
۶JavaScript:شکل اصلی شیء در جاوااسکریپت
۷JavaScript:متدهای شیء در ورژن ES5 جاوااسکریپت
تابع
۱JavaScript:تعریف تابع در جاوااسکریپت
۲JavaScript:پارامتر توابع در جاوااسکریپت
۳JavaScript:فراخوانی تابع در جاوااسکریپت
۴JavaScript:صدا کردن تابع در جاوااسکریپت
۵JavaScript:تابع Apply در جاوااسکریپت
۶JavaScript:بسته‌ها (به انگلیسی: Closures) در جاوااسکریپت
HTML DOM
۱JavaScript:HTML DOM در جاوااسکریپت
۲JavaScript:متدهای HTML DOM در جاوااسکریپت
۳JavaScript:HTML DOM Document در جاوااسکریپت
۴JavaScript:عناصر HTML DOM در جاوااسکریپت
۵JavaScript:HTML DOM در جاوااسکریپت - تغییر محتوای HTML
۶JavaScript:DOM در جاوااسکریپت - تغییر CSS
۷JavaScript:انیمیشن در HTML DOM جاوااسکریپت
۸JavaScript:رویدادها در HTML DOM جاوااسکریپت
۹JavaScript:شنونده رویداد در HTML DOM جاوااسکریپت
۱۰JavaScript:پیمایش در HTML DOM جاوااسکریپت
۱۱JavaScript:عناصر (گره‌ها) HTML DOM در جاوااسکریپت
۱۲JavaScript:مجموعه‌های HTML DOM جاوااسکریپت
۱۳JavaScript:لیست گره‌ها در HTML DOM جاوااسکریپت
Browser BOM
۱JavaScript:پنجره جاوااسکریپت - مدل شیء مرورگر
۲JavaScript:پنجره صفحه نمایش در جاوااسکریپت
۳JavaScript:موقعیت پنجره در جاوااسکریپت
۴JavaScript:تاریخچه پنجره در جاوااسکریپت
۵JavaScript:ناوبری پنجره در جاوااسکریپت
۶JavaScript:جعبه پیغام جاوااسکریپت
۷JavaScript:رویدادهای زمان‌بندی شده در جاوااسکریپت
۸JavaScript:کوکی‌های جاوااسکریپت
AJAX
۱JavaScript:مقدمه‌ای بر AJAX
۲JavaScript:AJAX - شیء XMLHttpRequest
۳JavaScript:AJAX - ارسال یک درخواست به سرور
۴JavaScript:AJAX - پاسخ سرور
۵JavaScript:مثال‌های XML در AJAX
۶JavaScript:مثال‌های PHP در AJAX
۷JavaScript:مثال‌های ASP در AJAX
۸JavaScript:مثال پایگاه داده در AJAX
۹JavaScript:نرم‌افزارهای XML
۱۰JavaScript:مثال‌های AJAX
JSON
۱JavaScript:مقدمه‌ای بر JSON
۲JavaScript:شیوهٔ نوشتار JSON
۳JavaScript:JSON در برابر XML
۴JavaScript:انواع داده‌های مجاز در JSON
۵متد JSON.parse()
۶متد JSON.stringify()
۷JavaScript:اشیاء JSON
۸JavaScript:آرایه‌ها در JSON
۹JavaScript:PHP در JSON
۱۰JavaScript:HTML در JSON
۱۱JavaScript:JSONP
jQuery
۱JavaScript:جاوااسکریپت / انتخابگرهای DOM جی‌کوئری
۲JavaScript:جاوااسکریپت / عناصر HTML جی‌کوئری
۳JavaScript:جاوااسکریپت / استایل‌های CSS در جی‌کوئری
۴JavaScript:جاوااسکریپت / HTML DOM در جی‌کوئری

متدهای کمکی برای نوع داده متنی یا رشته‌ای string به شما کمک می‌کند تا با این نوع از داده کار کنید. [۱]

محتویات

متدهای کمکی رشته‌ای (به انگلیسی: String) و ویژگی‌های کمکی

مقادیر اصلی (به انگلیسی: primitive) همانند عبارت "John Doe"، نمی‌توانند ویژگی یا متد داشته باشند (زیرا که آنها اشیاء (به انگلیسی: objects) نیستند).

اما با زبان جاوااسکریپت، متدها و ویژگی‌ها هم برای مقادیر اصلی (به انگلیسی: primitive) نیز در دسترس هستند، زیرا جاوااسکریپت زمانی که متدها و ویژگی‌ها را اجرا می‌کند با آن‌ها همانند یک شیء (به انگلیسی: object) برخورد می‌کند.

طول یک رشتهٔ متنی (به انگلیسی: String)

ویژگیlengthطول یک رشتهٔ متنی (به انگلیسی: string) را برمی‌گرداند:

مثال

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;

پیدا کردن یک رشتهٔ متنی درون یک رشته

متدindexOf()اندیس (موقعیت) نقطهٔ شروع یک متن به خصوص را در یک رشتهٔ متنی (به انگلیسی: string) برمی‌گرداند:

مثال

var str = "Please locate where 'locate' occurs!";
var pos = str.indexOf("locate");


متدlastIndexOf()موقعیت آخرین کاراکتر یک رشتهٔ متنی را درون یک متن بازمی‌گرداند:

مثال

var str = "Please locate where 'locate' occurs!";
var pos = str.lastIndexOf("locate");

هر دو متدindexOf()، وlastIndexOf()در صورتی که متن مورد نظر در درون رشتهٔ مورد نظر وجود نداشته باشد مقدار-1را به عنوان خروجی برمی‌گردانند.

مثال

var str = "Please locate where 'locate' occurs!";
var pos = str.lastIndexOf("John");

هر دو متد پارامتر دومی دارند که اندیس موقعیت شروع) برای جستجو در رشته را دریافت می‌کند:

مثال

var str = "Please locate where 'locate' occurs!";
var pos = str.indexOf("locate", 15);

متدlastIndexOf()عمل جستجو را از انتهای رشته (از آخر به اول) انجام می‌دهد، این بدان معناست که: اگر مقدار پارامتر دوم متد، عدد15باشد، عمل جستجو از اندیس (موقعیت) ۱۵ شروع می‌شود و عمل جستجو تا به ابتدای رشته ادامه می‌یابد.

مثال

var str = "Please locate where 'locate' occurs!";
var pos = str.lastIndexOf("locate", 15);

جستجوی یک رشته در یک رشتهٔ دیگر

متدsearch()یک رشتهٔ متنی را برای پیدا کردن یک مقدار به خصوص جستجو می‌کند و موقعیت یا اندیس نتیجه را برمی‌گرداند:

مثال

var str = "Please locate where 'locate' occurs!";
var pos = str.search("locate");

آیا این نکته را متوجه شدید؟

دو متد، indexOf()وsearch()، باهم برابر هستند؟

آنها آرگومان‌ها (پارامترهای) یکسانی دارند، و مقدار یکسانی را به عنوان خروجی بازمی‌گردانند؟

اما این دو متد باهم برابر نیستند. در زیر تفاوت‌های این دو متد را می‌بینید:

  • متدsearch()نمی‌تواند پارامتر دومی را به عنوان اندیس یا موقعیت شروع جستجو دریافت کند.
  • متدindexOf()نمی‌تواند مقادیر سخت (عبارات با قاعده) را در عبارت‌های رشته‌ای یا متنی جستجو کند.

شما در مورد عبارات‌های با قاعده در فصل‌های آینده مطالب بیشتری را خواهید آموخت.

جداسازی بخش‌های داده‌های متنی یا رشته‌ای (به انگلیسی: String)

سه متد برای جداسازی یک بخش از یک رشتهٔ متنی (به انگلیسی: string) وجود دارد:

  • slice(start, end)
  • substring(start, end)
  • substr(start, length)

متد ()slice

متدslice()یک بخش از یک رشتهٔ متنی (به انگلیسی: string) را جدا می‌کند و بخش جدا شده را به عنوان یک رشتهٔ متنی جدید برمی‌گرداند.

این متد دو پارامتر دریافت می‌کند: نقطه شروع، و نقطه پایان (نقطه پایان را شامل نمی‌شود).

این مثال، یک بخشی از رشتهٔ متنی را از اندیس شمارهٔ هفت تا اندیس شماره دوازده (۱–۱۳) را جدا می‌کند:

مثال

var str = "Apple, Banana, Kiwi";
var res = str.slice(7, 13);

نتیجه متغیر res برابر خواهد بود با:

Banana


اگر یک پارامتر عددی منفی باشد، اندیس (موقعیت) از انتهای رشته شمرده می‌شود.

این مثال بخشی از رشتهٔ متنی را با اندیس ۱۲- تا ۶- را جدا می‌کند:

مثال

var str = "Apple, Banana, Kiwi";
var res = str.slice(-12, -6);

نتیجه متغیر res برابر خواهد بود با:

Banana

اگر شما پارامتر دوم را ننویسید، متد رشتهٔ متنی را از میزان پارامتر اول به بعد را جدا خواهد کرد:

مثال

var res = str.slice(7);

یا، شمارش از اندیس آخر رشته صورت بگیرد:

مثال

var res = str.slice(-12);


متد ()substring

متدsubstring()بسیار شبیه به متدslice()است.

تفاوت این دو متد در این است که متدsubstring()نمی‌تواند اندیس‌های منفی را به عنوان پارامتر یا آرگومان قبول کند.

مثال

var str = "Apple, Banana, Kiwi";
var res = str.substring(7, 13);

نتیجه متغیر res برابر خواهد بود با:

Banana

اگر شما پارامتر دوم را ننویسید، متدsubstring()از اندیسی که پارامتر اول به آن اشاره می‌کند تا به بعد را جدا می‌کند.

متد ()substr

متدsubstr()بسیار شبیه بهSlice()است.

تفاوت بین این دو متد این است که پارامتر دوم طول بخش جدا شده را مشخص می‌کند.

مثال

var str = "Apple, Banana, Kiwi";
var res = str.substr(7, 6);

نتیجه متغیر res برابر خواهد بود با:

Banana

اگر شما پارامتر دوم را در نظر نگیرید، متدsubstr()از اندیسی که پارامتر اول به آن اشاره می‌کند، شروع می‌کند و ما بقی رشته را نیز جدا می‌کند.

مثال

var str = "Apple, Banana, Kiwi";
var res = str.substr(7);

نتیجه متغیر res برابر خواهد بود با:

Banana, Kiwi

اگر پارامتر اول منفی باشد، موقعیت یا اندیس از انتهای رشتهٔ متنی شمرده می‌شود.

مثال

var str = "Apple, Banana, Kiwi";
var res = str.substr(-4);

نتیجه متغیر res برابر خواهد بود با:

Kiwi

جابه‌جا کردن محتوای رشته‌های متنی یا String

متدreplace()یک مقدار به خصوص را با یک مقدار دیگر در یک رشتهٔ متنی (به انگلیسی: string) جابه‌جا می‌کند:

مثال

str = "Please visit Microsoft!";
var n = str.replace("Microsoft", "Wikicod");


به صورت پیشفرض، متدreplace()تنها اولین نتیجه برابر را جابه‌جا می‌کند:

مثال

str = "Please visit Microsoft and Microsoft!";
var n = str.replace("Microsoft", "Wikicod");

به صورت پیشفرض، متدreplace()یک متد حساس به حروف کوچک یا بزرگ (به انگلیسی: case sensitive) است. نوشتن کلمه MICROSOFT (با حروف بزرگ) برای رشتهٔ متنی در مثال زیر کار نخواهد کرد:

مثال

str = "Please visit Microsoft!";
var n = str.replace("MICROSOFT", "Wikicod");

برای این‌که هنگام جابه‌جایی رشته‌ها، حساسیت به حروف کوچک و بزرگ در نظر گرفته نشود، از یک عبارت با قاعده به وسیلهٔ/i(عدم حساسیت به حروف کوچک و بزرگ) می‌بایست استفاده کنید:

مثال

str = "Please visit Microsoft!";
var n = str.replace(/MICROSOFT/i, "Wikicod");

توجه داشته باشید که عبارت‌های با قاعده بدون کوتیشن ('یا) نوشته می‌شوند.

برای اینکه تمامی نتایج یکسان جابه‌جا شوند، از عبارت با قاعده با/g(که مخفف تمامی نتایج همسان (به انگلیسی: global match)) است استفاده کنید:

مثال

str = "Please visit Microsoft and Microsoft!";
var n = str.replace(/Microsoft/g, "Wikicod");


تبدیل به حروف کوچک و بزرگ

با استفاده از متدتمام حروف یک رشتهٔ متنی به حروف بزرگ تبدیل می‌شوند:

مثال

var text1 = "Hello World!";       // String
var text2 = text1.toUpperCase();  // text2 is text1 converted to upper

با استفاده از متدtoLowerCase()، تمامی حروف یک رشتهٔ متنی به حروف کوچک تبدیل می‌شوند:

مثال

var text1 = "Hello World!";       // String
var text2 = text1.toLowerCase();  // text2 is text1 converted to lower

متد ()concat

متدconcat()دو یا چند رشتهٔ متنی را به یکدیگر می‌چسباند:

مثال

var text1 = "Hello";
var text2 = "World";
var text3 = text1.concat(" ", text2);

متدconcat()می‌تواند به جای عملگر + استفاده شود. دو خط زیر کد کار یکسانی را انجام می‌دهند:

مثال

var text = "Hello" + " " + "World!";
var text = "Hello".concat(" ", "World!");


متد ()trim

متدtrim()فضاهای خالی دو طرف یک رشتهٔ متنی را پاک می‌کند:

مثال

var str = "       Hello World!        ";
alert(str.trim());


اگر شما نیاز دارید که کد شما حتما در مرورگر اینترنت اکسپلور ورژن هشت پشتیبانی شود، شما می‌توانید از متدreplace()به همراه یک عبارت با قاعده به جای متدtrim()استفاده کنید.

var str = "       Hello World!        ";
alert(str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''));

شما همچنین می‌توانید از روش جابه‌جایی بالا برای اضافه کردن یک تابع trim بهString.prototypeدر جاوااسکریپت استفاده کنید:

مثال

if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
  };
}
var str = "       Hello World!        ";
alert(str.trim());

جداسازی کاراکترهای یک رشتهٔ متنی

برای جداسازی کاراکترهای یک رشتهٔ متنی سه متد در جاوااسکریپت وجود دارد:

  • charAt(position)
  • charCodeAt(position)
  • ویژگیaccess [ ]

متد ()charAt

متدcharAt()یک کاراکتر را در یک اندیس (موقعیت به خصوص) در یک رشتهٔ متنی برمی‌گرداند:

مثال

var str = "HELLO WORLD";
str.charAt(0);            // returns H

متد ()charCodeAt

متدcharCodeAt()مقدار یونیکد یک کاراکتر به خصوص در یک موقعیت یا اندیس در یک رشته را برمی‌گرداند.

این متد یک کد بر حسب UTF-16 (عددی صحیح بین ۰ و ۶۵۵۳۵) را برمی‌گرداند.

مثال

var str = "HELLO WORLD";

str.charCodeAt(0);         // returns 72

ویژگی Access

ECMAScript 5 که در سال ۲۰۰۹ منتشر شد، اجازه استفاده از عملگر دسترسی (به انگلیسی: [ ] access) را برای متن‌ها می‌دهد:

مثال

var str = "HELLO WORLD";
str[0];                   // returns H


مثال

var str = "HELLO WORLD";
str[0] = "A";             // Gives no error, but does not work
str[0];                   // returns H


تبدیل یک رشتهٔ متنی به یک آرایه

یک رشتهٔ متنی را می‌توان به وسیلهٔ متدsplit()به یک آرایه تبدیل کرد.

مثال

var txt = "a,b,c,d,e";   // String
txt.split(",");          // Split on commas
txt.split(" ");          // Split on spaces
txt.split("|");          // Split on pipe

اگر جدا کننده نوشته نشود، آرایه بازگشتی کل رشتهٔ متنی را در اندیس [0] نگهداری خواهد کرد.

اگر جدا کننده" "باشد ، آرایه بازگشتی آرایه‌ای از تک کاراکترها خواهد بود:

مثال

var txt = "Hello";       // String
txt.split("");           // Split in characters

مرجع کامل در مورد رشته‌های متنی (به انگلیسی: String)

برای اینکه لیست کاملی از رفرنس‌ها و مرجع‌ها، برای رشته‌های متنی بدست بیاورید می‌توانید مرجع کامل رشته‌های متنی در جاوااسکریپت را مشاهده کنید .

این مرجع شامل توضیحات و مثال‌هایی از تمامی ویژگی‌های رشتهٔ متنی و متدهاست.

منابع آموزشی