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

از ویکی کد
(تفاوت) → نسخهٔ قدیمی‌تر | نمایش نسخهٔ فعلی (تفاوت) | نسخهٔ جدیدتر ← (تفاوت)
پرش به ناوبری پرش به جستجو

JavaScript String Methods

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

String methods help you to work with strings.

متدهای کمکی برای نوع داده متنی یا رشته ایString به شما کمک می کند تا با این نوع از داده کار کنید .

String Methods and Properties

متد های کمکی رشته ای یاString و ویژگی های کمکی

Primitive values, like "John Doe", cannot have properties or methods (because they are not objects).

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

But with JavaScript, methods and properties are also available to primitive values, because JavaScript treats primitive values as objects when executing methods and properties.

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

String Length

طول یک رشته متنی یاString

The length property returns the length of a string:

ویژگی length طول یک رشته متنی یا String را برمی گرداند:

Example

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

var sln = txt.length;

Finding a String in a String

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

The indexOf() method returns the index of (the position of) the first occurrence of a specified text in a string:

متد indexOf() اندیس (موقعیت ) نقطه شروع یک متن به خصوص،  را در یک رشته متنی یا String برمی گرداند :

Example

var str = "Please locate where 'locate' occurs!";

var pos = str.indexOf("locate");

JavaScript counts positions from zero.

جاوا اسکریپت شمارش موقعیت یا اندیس های یک رشته متنی را از صفر شروع می کند .

0 is the first position in a string, 1 is the second, 2 is the third ...

عدد صفر نشان دهنده موقعیت اولین کاراکتر در یک رشته متنی است ، عدد یک موقعیت دومین کاراکتر ، عدد دو موقعیت سومین کاراکتر ... را نشان می دهد.

The lastIndexOf() method returns the index of the last occurrence of a specified text in a string:

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

Example

var str = "Please locate where 'locate' occurs!";

var pos = str.lastIndexOf("locate");

Both indexOf(), and lastIndexOf() return -1 if the text is not found.

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

Example

var str = "Please locate where 'locate' occurs!";

var pos = str.lastIndexOf("John");

Both methods accept a second parameter as the starting position for the search:

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

Example

var str = "Please locate where 'locate' occurs!";

var pos = str.indexOf("locate", 15);

The lastIndexOf() methods searches backwards (from the end to the beginning), meaning: if the second parameter is 15, the search starts at position 15, and searches to the beginning of the string.

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

Example

var str = "Please locate where 'locate' occurs!";

var pos = str.lastIndexOf("locate", 15);

Searching for a String in a String

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

The search() method searches a string for a specified value and returns the position of the match:

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

Example

var str = "Please locate where 'locate' occurs!";

var pos = str.search("locate");

Did You Notice?

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

The two methods, indexOf() and search(), are equal?

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

They accept the same arguments (parameters), and return the same value?

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

The two methods are NOT equal. These are the differences:

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

·  The search() method cannot take a second start position argument.

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

The indexOf() method cannot take powerful search values (regular expressions).

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

You will learn more about regular expressions in a later chapter.

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

Extracting String Parts

جدا سازی بخش های داده های متنی یا رشته ای string

There are 3 methods for extracting a part of a string:

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

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

The slice() Method

متد slice()

slice() extracts a part of a string and returns the extracted part in a new string.

متد slice() یک بخش از یک رشته متنی یا String را جدا می کند و بخش جدا شده را به عنوان یک رشته متنی یا String جدید برمی گرداند.

This example slices out a portion of a string from position 7 to position 12 (13-1):

این مثال، یک  بخشی از رشته متنی را از اندیس شماره هفت تا اندیس شماره دوازده (1-13) را جدا می کند :

Example

var str = "Apple, Banana, Kiwi";

var res = str.slice(7, 13);

The result of res will be:

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

Banana

Remember: JavaScript counts positions from zero. First position is 0.

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

If a parameter is negative, the position is counted from the end of the string.

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

This example slices out a portion of a string from position -12 to position -6:

این مثال بخشی از رشته متنی را با اندیس 12- تا 6- را جدا می کند :

Example

var str = "Apple, Banana, Kiwi";

var res = str.slice(-12, -6);

If you omit the second parameter, the method will slice out the rest of the string:

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

Example

var res = str.slice(7);

or, counting from the end:

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

Example

var res = str.slice(-12);

Negative positions do not work in Internet Explorer 8 and earlier.

اندیس های منفی در اینترنت اکسپلور ورژن 8 و ورژن های قبلی کار نمی کنند .

The substring() Method

متد substring()

substring() is similar to slice().

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

The difference is that substring() cannot accept negative indexes.

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

Example

var str = "Apple, Banana, Kiwi";

var res = str.substring(7, 13);

The result of res will be:

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

Banana

If you omit the second parameter, substring() will slice out the rest of the string.

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

The substr() Method

متد substr()

substr() is similar to slice().

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

The difference is that the second parameter specifies the length of the extracted part.

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

Example

var str = "Apple, Banana, Kiwi";

var res = str.substr(7, 6);

The result of res will be:

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

Banana

If you omit the second parameter, substr() will slice out the rest of the string.

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

Example

var str = "Apple, Banana, Kiwi";

var res = str.substr(7);

The result of res will be:

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

Banana, Kiwi

If the first parameter is negative, the position counts from the end of the string.

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

Example

var str = "Apple, Banana, Kiwi";

var res = str.substr(-4);

The result of res will be:

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

Kiwi

Replacing String Content

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

The replace() method replaces a specified value with another value in a string:

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

Example

str = "Please visit Microsoft!";

var n = str.replace("Microsoft", "W3Schools");

The replace() method does not change the string it is called on. It returns a new string.

متد replace() رشته متنی را که از آن فراخوانی شده است را تغییر نمی دهد . این تابع یک رشته متنی جدید را به عنوان خروجی باز میگرداند .

By default, the replace() method replaces only the first match:

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

Example

str = "Please visit Microsoft and Microsoft!";

var n = str.replace("Microsoft", "W3Schools");

By default, the replace() method is case sensitive. Writing MICROSOFT (with upper-case) will not work:

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

Example

str = "Please visit Microsoft!";

var n = str.replace("MICROSOFT", "W3Schools");

To replace case insensitive, use a regular expression with an /i flag (insensitive):

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

Example

str = "Please visit Microsoft!";

var n = str.replace(/MICROSOFT/i, "W3Schools");

Note that regular expressions are written without quotes.

نکته:توجه داشته باشید که عبارت های با قاعده بدون کوتیشن (′ یا ″ ) نوشته می شوند .

To replace all matches, use a regular expression with a /g flag (global match):

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

Example

str = "Please visit Microsoft and Microsoft!";

var n = str.replace(/Microsoft/g, "W3Schools");

You will learn a lot more about regular expressions in the chapter JavaScript Regular Expressions.

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

Converting to Upper and Lower Case

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

A string is converted to upper case with toUpperCase():

با استفاده از متد toUpperCase()  تمام حروف یک رشته متنی به حروف بزرگ تبدیل می شوند :

Example

var text1 = "Hello World!";       // String

var text2 = text1.toUpperCase();  // text2 is text1 converted to upper

A string is converted to lower case with toLowerCase():

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

Example

var text1 = "Hello World!";       // String

var text2 = text1.toLowerCase();  // text2 is text1 converted to lower

The concat() Method

متد concat()

concat() joins two or more strings:

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

Example

var text1 = "Hello";

var text2 = "World";

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

The concat() method can be used instead of the plus operator. These two lines do the same:

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

Example

var text = "Hello" + " " + "World!";

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

All string methods return a new string. They don't modify the original string.

تمامی متد هایی که مربوط به رشته های متنی می شوند یک رشته متنی جدید را به عنوان خروجی برمی گردانند. آنها رشته متنی اصلی را تغییر نمی دهند .

Formally said: Strings are immutable: Strings cannot be changed, only replaced.

اگر بخواهیم ساده بگوییم : رشته های متنی تغییر ناپذیر هستند : رشته های متنی نمی توانند تغییر کنند ، آنها تنها می توانند جا به جا شوند .

String.trim()

متد trim()

The trim() method removes whitespace from both sides of a string:

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

Example

var str = "       Hello World!        ";

alert(str.trim());

The trim() method is not supported in Internet Explorer 8 or lower.

متد trim() در اینترنت اکسپلور ورژن هشت و پایینتر پشتیبانی نمی شود .

If you need to support IE 8, you can use replace() with a regular expression instead:

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

var str = "       Hello World!        ";

alert(str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''));

You can also use the replace solution above to add a trim function to the JavaScript String.prototype:

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

Example

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());

Extracting String Characters

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

There are 3 methods for extracting string characters:

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

  • charAt(position)
  • charCodeAt(position)
  • Property access [ ]

ویژگی access[]

The charAt() Method

متد charAt()

The charAt() method returns the character at a specified index (position) in a string:

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

Example

var str = "HELLO WORLD";

str.charAt(0);           // returns H

The charCodeAt() Method

متد charCodeAt()

The charCodeAt() method returns the unicode of the character at a specified index in a string:

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

The method returns a UTF-16 code (an integer between 0 and 65535).

این متد یک کد بر حسب utf-16 (عددی صحیح بین 0 و 65535) را برمیگرداند .

Example

var str = "HELLO WORLD";


str.charCodeAt(0);         // returns 72

Property Access

ویژگی Access

ECMAScript 5 (2009) allows property access [ ] on strings:

ECMAScript 5  که در سال 2009 منتشر شد ، اجازه استفاده از عملگر دسترسی یا access یا [] را برای متنها می دهد :

Example

var str = "HELLO WORLD";

str[0];                  // returns H

Property access might be a little unpredictable:

نتیجه استفاده ازویژگی دسترسی یا Access کمی غیر قابل پیش بینی باشد :

·  It does not work in Internet Explorer 7 or earlier

این ویژگی در مرورگر اینترنت اکسپلور ورژن هفت و یا ورژن های قدیمی تر کار نمی کند .

It makes strings look like arrays (but they are not)

استفاده از این روش باعث میشود که رشته های متنی به آرایه ها شبیه باشند (در حالی که شباهتی بین این دو وجود ندارد . )

If no character is found, [ ] returns undefined, while charAt() returns an empty string.

اگر کاراکتری یافت نشود ، ویژگی []  ویژگی undefined یا تعریف نشده را برمیگرداند در حالی که متد charAt() یک رشته متنی خالی باز میگرداند .

·  It is read only. str[0] = "A" gives no error (but does not work!)

این قابلیت فقط خواندنی است . نوشتن دستور str[0]=”A” موجب بروز خطا نمی شود (اما کار نمی کند! )

Example

var str = "HELLO WORLD";

str[0] = "A";             // Gives no error, but does not work

str[0];                  // returns H

If you want to work with a string as an array, you can convert it to an array.

اگر شما می خواهید که با یک رشته متنی همانند یک آرایه کار کنید ، شما می توانید آن را به یک آرایه تبدیل کنید .

Converting a String to an Array

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

A string can be converted to an array with the split() method:

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

If the separator is omitted, the returned array will contain the whole string in index [0].

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

If the separator is "", the returned array will be an array of single characters:

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

Example

var txt = "Hello";       // String

txt.split("");           // Split in characters

Complete String Reference

مرجع کامل در مورد رشته های متنی یا String

For a complete reference, go to our Complete JavaScript String Reference.

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

The reference contains descriptions and examples of all string properties and methods.

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