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

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

JavaScript strings are used for storing and manipulating text.

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

JavaScript Strings

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

A JavaScript string is zero or more characters written inside quotes.

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

Example

var x = "John Doe";

You can use single or double quotes:

شما می‌توانید از تک کوتیشن ′ یا دو کوتیشن ″ استفاده کنید:

Example

var carName1 = "Volvo XC60"; // Double quotes

var carName2 = 'Volvo XC60'; // Single quotes

You can use quotes inside a string, as long as they don't match the quotes surrounding the string:

شما می‌توانید از کوتیشن‌ها درون یک رشته متنی استفاده کنید البته به شرطی که کوتیشنی که درون رشته متنی استفاده می‌کنید با کوتیشنی که رشته متنی درون آن قرار گرفته همخوانی نداشته باشد:

Example

var answer1 = "It's alright";

var answer2 = "He is called 'Johnny'";

var answer3 = 'He is called "Johnny"';

String Length

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

To find the length of a string, use the built-in length property:

برای پیدا کردن طول یک رشته متنی، از ویژگی length استفاده کنید:

Example

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

var sln = txt.length;

Escape Character

Escape کردن کاراکترها

Because strings must be written within quotes, JavaScript will misunderstand this string:

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

var x = "We are the so-called "Vikings" from the north.";

The string will be chopped to "We are the so-called ".

رشته متنی فوق به "We are the so-called " خلاصه خواهد شد.

The solution to avoid this problem, is to use the backslash escape character.

راه حل این مشکل استفاده از علامت بک اسلش یا \ قبل از کاراکتر است.

The backslash (\) escape character turns special characters into string characters:

کاراکتر بک اسلش(\) موجب می‌شود که کاراکترهای به خصوص همانند کوتیشن به کاراکترهای متنی یا رشته‌ای تبدیل شوند:

کد نتیجه توضیحات
\′ تک کوتیشن
\’’ دو کوتیشن
\\ \ بک اسلش

The sequence \" inserts a double quote in a string:

عبارت \″ موجب ایجاد دو کوتیشن یا ″ در یک رشته متنی می‌شود:

Example

var x = "We are the so-called \"Vikings\" from the north.";

The sequence \' inserts a single quote in a string:

عبارت \′ موجب ایجاد تک کوتیشن یا ′ در یک رشته متنی می‌شود:

Example

var x = 'It\'s alright.';

The sequence \\ inserts a backslash in a string:

عبارت \\ یک بک اسلش درون یک رشته متنی ایجاد می‌کند:

Example

var x = "The character \\ is called backslash.";

Six other escape sequences are valid in JavaScript:

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

کد نتیجه
\b ایجاد بک اسلش در رشته متنی
\f ایجاد formfeed
\n ایجاد خط جدید
\r حذف یک کاراکتر
\t ایجاد یک تب یا فاصله افقی
\v ایجاد یک فاصله عمودی

The 6 escape characters above were originally designed to control typewriters, teletypes, and fax machines. They do not make any sense in HTML.

شش کاراکتر بالا در حقیقت برای کنترل ماشین‌های تحریر، ماشین‌های ترجمه و دستگاه فکس طراحی شده‌اند. آنها نقشی در html ندارند.

Breaking Long Code Lines

کوچکتر کردن کدهای طولانی

For best readability, programmers often like to avoid code lines longer than 80 characters.

برای خواناتر شدن کد، برنامه‌نویس‌ها اغلب دوست دارند که طول کدهایشان در هر خط بیشتر از ۸۰ کاراکتر نباشد.

If a JavaScript statement does not fit on one line, the best place to break it is after an operator:

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

Example

document.getElementById("demo").innerHTML = "Hello Dolly!";

You can also break up a code line within a text string with a single backslash:

شما همچنین می‌توانید درون یک رشته متنی به وسیله یک بک اسلش یک خط خالی ایجاد کنید:

Example

document.getElementById("demo").innerHTML = "Hello \

Dolly!";

The \ method is not the preferred method. It might not have universal support.

استفاده از بک اسلش یا \ دیگر روش مناسبی نیست. این روش دیگر پشتیبانی نمی‌شود.

Some browsers do not allow spaces behind the \ character.

برخی از مرورگرها اجازه استفاده از فضای خالی پشت کاراکتر \ را نمی‌دهند.

A safer way to break up a string, is to use string addition:

راه بهتری که برای ایجاد فاصله در رشته متنی وجود دارد، جمع کردن رشته‌ها است:

Example

document.getElementById("demo").innerHTML = "Hello " +

"Dolly!";

You cannot break up a code line with a backslash:

شما نمی‌توانید به وسیلهٔ \ بین کدها فاصله ایجاد کنید:

Example

document.getElementById("demo").innerHTML = \

"Hello Dolly!";

Normally, JavaScript strings are primitive values, created from literals:

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

var firstName = "John";

But strings can also be defined as objects with the keyword new:

اما رشته‌های متنی نیز می‌توانند به صورت یک شی به وسیلهٔ کلمه کلیدی new تعریف شوند:

var firstName = new String("John");

Example

var x = "John";

var y = new String("John");

// typeof x will return string

// typeof y will return object

Don't create strings as objects. It slows down execution speed.

The new keyword complicates the code. This can produce some unexpected results:

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

When using the == operator, equal strings are equal:

زمانی که از عملگر ==استفاده می‌کنید، رشته‌های برابر، با یک دیگر برابرند:

Example

var x = "John";

var y = new String("John");

// (x == y) is true because x and y have equal values

When using the === operator, equal strings are not equal, because the === operator expects equality in both type and value.

زمانی که از عملگر === استفاده می‌کنید، رشته‌های برابر با یک دیگر برابر نیستند، زیرا که عملگر === برابری عملوندهای خود را در هم مقدار آنها و هم نوع آنها بررسی می‌کند.

Example

var x = "John";

var y = new String("John");

// (x === y) is false because x and y have different types (string and object)

Or even worse. Objects cannot be compared:

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

Example

var x = new String("John");

var y = new String("John");

// (x == y) is false because x and y are different objects

Example

var x = new String("John");

var y = new String("John");

// (x === y) is false because x and y are different objects

Note the difference between (x== y) and (x ===y).

نکته : به تفاوت بین (x== y) و (x ===y) توجه داشته باشید.

Comparing two JavaScript objects will always return false.

نتیجه مقایسه دو شی در جاوااسکریپت همیشه False خواهد بود.