در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±ÛÙ¾ØªØ Ø¯Ø§Ø¯ÙâÛ Ù ØªÙÛ Ø¨Ù Ø¹ÙÙØ§Ù رشت٠(string) Ø°Ø®ÛØ±Ù Ù ÛâØ´ÙØ¯. ÙÙØ¹ جداگاÙÙâØ§Û Ø¨Ø±Ø§Û ÛÚ© کاراکتر Ù ÙØ±Ø¯ ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯.
ÙØ±Ù ت درÙÙÛ Ø¨Ø±Ø§Û Ø±Ø´ØªÙâÙØ§ ÙÙ ÛØ´Ù UTF-16 Ø§Ø³ØªØ Ù Ø¨Ù Ø±Ù Ø²Ú¯Ø°Ø§Ø±Û ØµÙØÙ Ø¨Ø³ØªÚ¯Û ÙØ¯Ø§Ø±Ø¯.
Ú©ÙØªÛØ´ÙâÙØ§
Ø¨ÛØ§ÛÛØ¯ اÙÙØ§Ø¹ Ú©ÙØªÛØ´ÙâÙØ§ را ÛØ§Ø¯Ø¢ÙØ±Û Ú©ÙÛÙ .
رشتÙâÙØ§ Ù ÛâØªÙØ§ÙÙØ¯ در Ú©ÙØªÛØ´ÙâÙØ§Û ØªÚ©ÛØ Ø¯ÙØªØ§ÛÛ ÛØ§ backtickÙØ§ Ù ØØµÙر Ø´ÙÙØ¯:
let single = 'Ú©ÙØªÛش٠تکÛ';
let double = "Ú©ÙØªÛØ´Ù Ø¯ÙØªØ§ÛÛ";
let backticks = `ÙØ§backtick`;
Ú©ÙØªÛØ´ÙâÙØ§Û ØªÚ©Û Ù Ø¯ÙØªØ§ÛÛ Ø§Ø³Ø§Ø³Ø§ ÛÚ©Ø³Ø§Ù ÙØ³ØªÙد. اگرÚÙØ backtickÙØ§Ø با Ù¾ÛÚÛØ¯Ù ÙØ± Ø¹Ø¨Ø§Ø±ØªÛ Ø¯Ø± {...}$Ø Ø¨Ù Ù
ا اجاز٠Ù
ÛâØ¯ÙÙØ¯ ک٠آ٠عبارت را درÙÙ Ø±Ø´ØªÙ ÙØ±Ø§Ø± دÙÛÙ
:
function sum(a, b) {
return a + b;
}
alert(`1 + 2 = ${sum(1, 2)}.`); // 1 + 2 = 3.
ÛÚ©Û Ø¯Ûگر از Ù Ø²Ø§ÛØ§Û Ø§Ø³ØªÙØ§Ø¯Ù از backtickÙØ§ اÛ٠است ک٠اجاز٠٠ÛâØ¯ÙÙØ¯ تا رشت٠را در ÚÙØ¯ خط بÙÙÛØ³ÛÙ :
let guestList = `Ù
ÙÙ
اÙâÙØ§:
* John
* Pete
* Mary
`;
alert(guestList); // ÙÛØ³ØªÛ از Ù
ÙÙ
اÙâÙØ§Ø در ÚÙØ¯ خط
Ø·Ø¨ÛØ¹Û Ø¨Ù ÙØ¸Ø± Ù ÛâØ±Ø³Ø¯ ÙÙØ ا٠ا Ú©ÙØªÛØ´ÙâÙØ§Û ØªÚ©Û ÛØ§ Ø¯ÙØªØ§ÛÛ Ø§ÛÙ ÚÙÛ٠کار ÙÙ ÛâÚ©ÙÙØ¯.
اگر ٠ا با Ø§Ø³ØªÙØ§Ø¯Ù از Ø¢ÙÙØ§ ØªÙØ§Ø´ Ú©ÙÛ٠در ÚÙØ¯ خط بÙÙÛØ³ÛÙ Ø ÛÚ© Ø§Ø±ÙØ± Ø¨Ù ÙØ¬Ùد Ø®ÙØ§Ùد آ٠د:
let guestList = "Guests: // Error: Unexpected token ILLEGAL
* John";
Ú©ÙØªÛØ´ÙâÙØ§Û ØªÚ©Û Ù Ø¯ÙØªØ§ÛÛ Ø§Ø² Ø²Ù Ø§Ù Ø¨Ø³ÛØ§Ø± ÙØ¯Û٠در Ø²Ø¨Ø§Ù ÙØ¬Ùد Ø¯Ø§Ø´ØªÙØ¯ ز٠اÙÛ Ú©Ù ÙÛØ§Ø² ب٠رشتÙâÙØ§Û ÚÙØ¯ Ø®Ø·Û Ø®ÛÙÛ Ø¨Ù ÚØ´Ù ÙÙ ÛâØ¢Ù Ø¯. BacktickÙØ§ Ø¨Ø¹Ø¯ÙØ§ Ø¨Ù ÙØ¬Ùد Ø¢Ù Ø¯ÙØ¯ ٠ب٠اÛÙ ØªØ±ØªÛØ¨ ÚÙØ¯ Ú©Ø§Ø±Ù ÙØ³ØªÙد.
BacktickÙØ§ ب٠Ù
ا اجاز٠Ù
ÛâØ¯ÙÙØ¯ Ú©Ù ÛÚ© âØªØ§Ø¨Ø¹ اÙÚ¯Ùâ ÙØ¨Ù از backtick اÙÙ Ù
شخص Ú©ÙÛÙ
. سÛÙØªÚ©Ø³ اÛÙÚ¯ÙÙ٠است: func`string`. تابع func Ø¨Ù Ø·ÙØ± Ø®ÙØ¯Ú©Ø§Ø± صدا زد٠Ù
ÛâØ´ÙØ¯Ø رشت٠را Ø¯Ø±ÛØ§Ùت Ù
ÛâÚ©ÙØ¯ ٠عبارات را Ø§ÛØ¬Ø§Ø¯ Ù
ÛâÚ©ÙØ¯ Ù Ù
ÛâØªÙØ§Ùد با Ø¢ÙÙØ§ ÙØ±Ø§ÛÙØ¯Û Ø§ÙØ¬Ø§Ù
Ø¯ÙØ¯. ب٠اÛÙ âØ§ÙÚ¯ÙÙØ§Û Ø¨Ø±ÚØ³Ø¨ Ú¯Ø°Ø§Ø±Û Ø´Ø¯Ùâ Ù
ÛâÚ¯ÙÛÙØ¯. اÛÙ ÙÛÚÚ¯Û Ù¾ÛØ§Ø¯ÙâØ³Ø§Ø²Û Ø§ÙÚ¯ÙÙØ§Û Ø³ÙØ§Ø±Ø´Û را آساÙâØªØ± Ù
ÛâÚ©ÙØ¯Ø اÙ
ا در عÙ
Ù Ø®ÛÙÛ Ú©Ù
Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâØ´ÙØ¯. Ù
ÛâØªÙØ§ÙÛØ¯ دربار٠آ٠در کتاب راÙÙÙ
ا Ø¨ÛØ´ØªØ± Ø¨Ø®ÙØ§ÙÛØ¯.
Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§Û خاص
اÛÙک٠با Ú©ÙØªÛØ´ÙâÙØ§Û ØªÚ©Û Ù Ø¯ÙØªØ§ÛÛ Ø±Ø´ØªÙâÙØ§Û ÚÙØ¯ Ø®Ø·Û Ø¨Ø³Ø§Ø²ÛÙ
Ø Ø¨Ø§ Ø§Ø³ØªÙØ§Ø¯Ù از âکاراکتر خط Ø¬Ø¯ÛØ¯âØ Ú©Ù Ø¨Ù ØµÙØ±Øª \n ÙÙØ´ØªÙ Ù
ÛâØ´ÙØ¯Ø اÙ
Ú©Ø§Ù Ù¾Ø°ÛØ± است Ú©Ù ÛÚ© خط Ø¬Ø¯ÛØ¯ را Ù
شخص Ù
ÛâÚ©ÙØ¯:
let guestList = "Ù
ÙÙ
اÙâÙØ§:\n * John\n * Pete\n * Mary";
alert(guestList); // ÙÛØ³ØªÛ ÚÙØ¯ Ø®Ø·Û Ø§Ø² Ù
ÙÙ
اÙâÙØ§Ø درست Ù
اÙÙØ¯ عبارت Ø¨Ø§ÙØ§
Ø¨Ø±Ø§Û Ù Ø«Ø§ÙØ اÛ٠د٠خط برابر ÙØ³ØªÙØ¯Ø ÙÙØ· Ø¨Ù Ø·ÙØ± Ù ØªÙØ§ÙØªÛ ÙÙØ´ØªÙ شدÙâØ§ÙØ¯:
let str1 = "Hello\nWorld"; // "Ø§ÛØ¬Ø§Ø¯ د٠خط با Ø§Ø³ØªÙØ§Ø¯Ù از "ÙÙ
اد خط Ø¬Ø¯ÛØ¯
// ÙØ§backtick Ø§ÛØ¬Ø§Ø¯ د٠خط با Ø§Ø³ØªÙØ§Ø¯Ù از خط Ø¬Ø¯ÛØ¯ Ù
let str2 = `Hello
World`;
alert(str1 == str2); // true
<<<<<<< HEAD Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§Û âØ®Ø§Øµâ Ø¯Ûگر Ù ØºÛØ± ٠تداÙÙ ÙÙ ÙØ³ØªÙد:
There are other, less common special characters:
18b1314af4e0ead5a2b10bb4bacd24cecbb3f18e
| کاراکتر | ØªÙØ¶ÛØØ§Øª |
|---|---|
| <<<<<<< HEAD | |
\n |
خط Ø¬Ø¯ÛØ¯ |
\r |
ÙØ§ÛÙâÙØ§Û Ù
تÙÛ ÙÛÙØ¯Ùز از ØªØ±Ú©ÛØ¨ د٠کاراکتر \r\n Ø¨Ø±Ø§Û ÙÙ
Ø§ÛØ´ ÛÚ© خط Ø¬Ø¯ÛØ¯ Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙØ¯Ø در ØØ§ÙÛ Ú©Ù Ø¨Ø±Ø§Û Ø³ÛØ³ØªÙ
âÙØ§Û ØºÛØ± ÙÛÙØ¯ÙØ²Û \n اÛ٠کار را Ø§ÙØ¬Ø§Ù
Ù
ÛâØ¯ÙØ¯. |
دÙÛ٠آ٠Ù
Ø±Ø¨ÙØ· ب٠گذشتÙâÙØ§ است. Ø¨ÛØ´ØªØ± ÙØ±Ù
âØ§ÙØ²Ø§Ø±ÙØ§Û ÙÛÙØ¯ÙØ²Û \n را ÙÙ
Ù
ÛâØ´ÙØ§Ø³Ùد. |
|
\', \", \` |
Ú©ÙØªÛØ´ÙâÙØ§ |
\\ |
Backslash |
\t |
Tab |
\b, \f, \v |
Backspace, Form Feed, Vertical Tab â Ø¨Ø±Ø§Û Ú©Ø§Ù Ù Ø¨ÙØ¯Ù Ù Ø·Ø§ÙØ¨ Ú¯ÙØªÙ شدÙâØ§ÙØ¯Ø از ÙØ¯ÛÙ ÙØ¬Ùد Ø¯Ø§Ø±ÙØ¯Ø Ø§Ù Ø±ÙØ²Ù Ø§Ø³ØªÙØ§Ø¯Ù ÙÙ ÛâØ´ÙÙØ¯ (ش٠ا Ù ÛâØªÙØ§ÙÛØ¯ ÙÙ ÛÙ ØØ§Ùا Ø¢ÙâÙØ§ را ÙØ±Ø§Ù ÙØ´ Ú©ÙÛØ¯). |
تÙ
اÙ
Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§Û خاص با ÛÚ© کاراکتر backslash \ Ø´Ø±ÙØ¹ Ù
ÛâØ´ÙÙØ¯. ÙÙ
ÚÙÛ٠ب٠آ٠âکاراکتر ÙØ±Ø§Ø± (escape character)â ÙÙ
Ù
ÛâÚ¯ÙÛÙØ¯.
ÚÙ٠اÛ٠کاراکتر خاص Ø§Ø³ØªØ Ø§Ú¯Ø± Ø¨Ø®ÙØ§ÙÛÙ
ÛÚ© backslash \ ÙØ§ÙØ¹Û Ø¯Ø±ÙÙ Ø±Ø´ØªÙ ÙØ´Ø§Ù دÙÛÙ
Ø Ø¨Ø§ÛØ¯ آ٠را Ø¯ÙØ¨Ù Ú©ÙÛÙ
:
alert( `The backslash: \\` ); // The backslash: \
Ú©ÙØªÛØ´ÙâÙØ§Û «escaped» \'Ø \"Ø \` Ø¨Ø±Ø§Û Ø§Ø¶Ø§Ù٠کرد٠ÛÚ© Ú©ÙØªÛش٠ب٠رشتÙâØ§Û Ú©Ù Ø¯Ø± ÙÙ
ا٠ÙÙØ¹ Ú©ÙØªÛØ´Ù ÙØ±Ø§Ø± Ú¯Ø±ÙØªÙ است Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâØ´ÙÙØ¯.
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
alert( 'I\'m the Walrus!' ); // I'm the Walrus!
ÙÙ
Ø§ÙØ·Ùر Ú©Ù Ù
ÛâØ¨ÛÙÛØ¯Ø Ø¨Ø§ÛØ¯ ÙØ¨Ù از Ú©ÙØªÛش٠داخÙÛ backslash \ Ø¨ÛØ§Ø±ÛÙ
Ø ÙگرÙ٠در ØºÛØ± اÛÙ ØµÙØ±Øª Ú©ÙØªÛØ´Ù Ù¾Ø§ÛØ§Ù رشت٠را ÙÙ
Ø§ÛØ´ Ù
ÛâØ¯ÙØ¯.
ÙØ·Ø¹Ø§ ÙÙØ· Ú©ÙØªÛØ´ÙâÙØ§ÛÛ Ú©Ù Ø¨Ø§ Ú©ÙØªÛØ´ÙâÙØ§Û Ù¾Ø§ÛØ§ÙÛ ÛÚ©Ø³Ø§Ù ÙØ³ØªÙد Ø¨Ø§ÛØ¯ ÙØ±Ø§Ø±Û Ø´ÙÙØ¯. Ù¾Ø³Ø Ø¨Ù Ø¹ÙÙØ§Ù ÛÚ© را٠ØÙ Ø²ÛØ¨Ø§ØªØ±Ø Ø¨Ù Ø¬Ø§Û Ø¢Ù Ù ÛâØªÙØ§ÙÛÙ Ø¨Ù Ú©ÙØªÛØ´ÙâÙØ§Û Ø¯ÙØªØ§ÛÛ ÛØ§ backtickÙØ§ سÙÛÛÚ Ú©ÙÛÙ :
alert( "I'm the Walrus!" ); // I'm the Walrus!
<<<<<<< HEAD
در Ú©ÙØ§Ø± اÛÙ Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§Û Ø®Ø§ØµØ ÙÙ
ÚÙÛÙ ÛÚ© ÙØ´Ø§Ù خاص Ø¨Ø±Ø§Û Ú©Ø¯ÙØ§Û Unicode \uâ¦ ÙØ¬Ùد دارد Ú©Ù Ú©Ù
Û Ø¨Ø¹Ø¯ØªØ± در اÛÙ ÙØµÙ آ٠را Ù¾ÙØ´Ø´ Ù
ÛâØ¯ÙÛÙ
.
Besides these special characters, thereâs also a special notation for Unicode codes \uâ¦, itâs rarely used and is covered in the optional chapter about Unicode.
18b1314af4e0ead5a2b10bb4bacd24cecbb3f18e
Ø·Ù٠رشتÙ
ÙÛÚÚ¯Û length Ø¯Ø§Ø±Ø§Û Ø·Ù٠رشت٠است:
alert( `My\n`.length ); // 3
در ÙØ¸Ø± Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯ Ú©Ù \n ÛÚ© کاراکتر âØ®Ø§Øµâ Ù
ÙØ±Ø¯ Ø§Ø³ØªØ Ù¾Ø³ Ø·Ù٠در ÙØ§Ùع 3 است.
length ÛÚ© ÙÛÚÚ¯Û Ø§Ø³ØªØ¨Ø¹Ø¶Û Ø§ÙÙØ§Øª Ø§ÙØ±Ø§Ø¯Û ک٠زÙ
ÛÙÙâØ§Û Ø¯Ø± Ø¨Ø¹Ø¶Û Ø²Ø¨Ø§ÙâÙØ§Û Ø¨Ø±ÙØ§Ù
Ù ÙÙÛØ³Û دÛگر Ø¯Ø§Ø±ÙØ¯ Ø§Ø´ØªØ¨Ø§ÙØ§ str.length() را Ø¨Ù Ø¬Ø§Û ÙÙØ´ØªÙ str.length صدا Ù
ÛâØ²ÙÙØ¯. اÛÙÚ¯ÙÙ٠کار ÙÙ
ÛâÚ©ÙØ¯.
<<<<<<< HEAD
ÙØ·Ùا در ÙØ¸Ø± Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯ Ú©Ù str.length ÛÚ© ÙÛÚÚ¯Û Ø¹Ø¯Ø¯Û Ø§Ø³Øª ÙÙ ÛÚ© تابع. ÙÛØ§Ø²Û ب٠اضاÙÙ Ú©Ø±Ø¯Ù Ù¾Ø±Ø§ÙØªØ± بعد از Ø¢Ù ÙÛØ³Øª.
Please note that str.length is a numeric property, not a function. There is no need to add parenthesis after it. Not .length(), but .length.
18b1314af4e0ead5a2b10bb4bacd24cecbb3f18e
Ø¯Ø³ØªØ±Ø³Û Ø¯Ø§Ø´ØªÙ Ø¨Ù Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§
<<<<<<< HEAD
Ø¨Ø±Ø§Û Ø¯Ø±ÛØ§Ùت ÛÚ© کاراکتر در Ù
ÙÙØ¹Ûت posØ Ø§Ø² براکتâÙØ§ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯ ÛØ§ Ù
تد str.charAt(pos) را صدا بزÙÛØ¯. اÙÙÛ٠کاراکتر از Ù
ÙÙØ¹Ûت ØµÙØ± Ø´Ø±ÙØ¹ Ù
ÛâØ´ÙØ¯:
To get a character at position pos, use square brackets [pos] or call the method str.at(pos). The first character starts from the zero position:
18b1314af4e0ead5a2b10bb4bacd24cecbb3f18e
let str = `Hello`;
// اÙÙÛ٠کاراکتر
alert( str[0] ); // H
alert( str.at(0) ); // H
// آخرÛ٠کاراکتر
alert( str[str.length - 1] ); // o
alert( str.at(-1) );
<<<<<<< HEAD
براکتâÙØ§ Ø±ÙØ´ Ù
Ø¯Ø±Ù Ø¯Ø±ÛØ§Ùت کاراکتر ÙØ³ØªÙØ¯Ø Ø¯Ø± ØØ§ÙÛ Ú©Ù charAt Ø¨ÙØ§ Ø¨Ù Ø¯ÙØ§ÛÙÛ Ù
Ø±Ø¨ÙØ· Ø¨Ù ØªØ§Ø±ÛØ®ÚÙ Ø²Ø¨Ø§Ù ÙØ¬Ùد دارد.
تÙÙØ§ ØªÙØ§Ùت Ù
ÛØ§Ù Ø¢ÙÙØ§ اÛ٠است ک٠اگر Ú©Ø§Ø±Ø§Ú©ØªØ±Û Ù¾ÛØ¯Ø§ ÙØ´ÙØ¯Ø [] Ù
ÙØ¯Ø§Ø± undefined را برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯Ø Ù charAt ÛÚ© رشت٠خاÙÛ Ø±Ø§ برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯:
As you can see, the .at(pos) method has a benefit of allowing negative position. If pos is negative, then itâs counted from the end of the string.
So .at(-1) means the last character, and .at(-2) is the one before it, etc.
The square brackets always return undefined for negative indexes, for instance:
18b1314af4e0ead5a2b10bb4bacd24cecbb3f18e
let str = `Hello`;
<<<<<<< HEAD
alert( str[1000] ); // undefined
alert( str.charAt(1000) ); // '' (ÛÚ© رشت٠خاÙÛ)
=======
alert( str[-2] ); // undefined
alert( str.at(-2) ); // l
>>>>>>> 18b1314af4e0ead5a2b10bb4bacd24cecbb3f18e
ÙÙ
ÚÙÛÙ Ù
ا Ù
ÛâØªÙØ§ÙÛÙ
با Ø§Ø³ØªÙØ§Ø¯Ù از for..of Ø¨Ø±Ø§Û Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§ ØÙÙ٠بزÙÛÙ
:
for (let char of "Hello") {
alert(char); // H,e,l,l,o (Ù ØºÛØ±Ù "l" سپس Ø"e" سپس Ø"H" Ù
ÛâØ´ÙØ¯ char)
}
رشتÙâÙØ§ تغÛÛØ±ÙØ§Ù¾Ø°ÛØ± ÙØ³ØªÙد
رشتÙâÙØ§ در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت ÙÙ ÛâØªÙØ§ÙÙØ¯ تغÛÛØ± Ú©ÙÙØ¯. اÛÙÚ©Ù ÛÚ© کاراکتر را تغÛÛØ± دÙÛÙ ØºÛØ± ٠٠ک٠است.
Ø¨ÛØ§ÛÛØ¯ Ø¨Ø±Ø§Û ÙØ´Ø§Ù داد٠اÛÙک٠اÛ٠کار ÙØ®ÙØ§ÙØ¯ کرد Ø§Ù ØªØØ§ÙØ´ Ú©ÙÛÙ :
let str = 'Hi';
str[0] = 'h'; // Ø§Ø±ÙØ± Ù
ÛâØ¯ÙØ¯
alert( str[0] ); // کار ÙÙ
ÛâÚ©ÙØ¯
ÛÚ© را٠ØÙ اÛ٠است ک٠رشتÙâØ§Û Ú©Ø§Ù
ÙØ§ Ø¬Ø¯ÛØ¯ بسازÛÙ
Ù str را Ø¨Ù Ø¬Ø§Û Ø±Ø´ØªÙâÛ ÙØ¯ÛÙ
Û Ø¨Ø±Ø§Ø¨Ø± با Ø¢Ù ÙØ±Ø§Ø± دÙÛÙ
.
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
let str = 'Hi';
str = 'h' + str[1]; // رشت٠را جاÛگزÛÙ Ù
ÛâÚ©ÙÛÙ
alert( str ); // hi
در بخشâÙØ§Û Ø¨Ø¹Ø¯Û Ù Ø«Ø§ÙâÙØ§Û Ø¨ÛØ´ØªØ±Û از اÛÙ Ø®ÙØ§ÙÛÙ Ø¯ÛØ¯.
تغÛÛØ± Ø¨Ø²Ø±Ú¯Û Ù Ú©ÙÚÚ©Û ØØ±ÙÙ
Ù ØªØ¯ÙØ§Û toLowerCase() Ù toUpperCase() Ø¨Ø²Ø±Ú¯Û Ù Ú©ÙÚÚ©Û ØØ±Ù٠را تغÛÛØ± Ù ÛâØ¯ÙÙØ¯:
alert( 'Interface'.toUpperCase() ); // INTERFACE
alert( 'Interface'.toLowerCase() ); // interface
ÛØ§ اگر Ø¨Ø®ÙØ§ÙÛÙ ÛÚ© کاراکتر را Ø¨Ù ØØ±Ù Ú©ÙÚÚ© آ٠تبدÛÙ Ú©ÙÛ٠اÛÙÚ¯ÙÙ٠ع٠٠٠ÛâÚ©ÙÛÙ :
alert( 'Interface'[0].toLowerCase() ); // 'i'
Ø¬Ø³ØªØ¬Ù Ø¨Ø±Ø§Û ÛÚ© Ø²ÛØ± رشتÙ
ÚÙØ¯ Ø±Ø§Ù Ø¨Ø±Ø§Û Ú¯Ø´ØªÙ Ø¨Ù Ø¯ÙØ¨Ø§Ù ÛÚ© Ø²ÛØ± رشت٠در ÛÚ© Ø±Ø´ØªÙ ÙØ¬Ùد دارد.
٠تد str.indexOf
٠تد اÙÙ str.indexOf(substr, pos) است.
اÛÙ Ù
تد Ø¨Ù Ø¯ÙØ¨Ø§Ù substr درÙÙ str Ù
ÛâÚ¯Ø±Ø¯Ø¯Ø Ù Ø§Ø² Ù
ÙÙØ¹Ûت pos Ø¯Ø§Ø¯Ù Ø´Ø¯Ù Ø´Ø±ÙØ¹ Ù
ÛâÚ©ÙØ¯Ø Ù Ù
ÙÙØ¹ÛØªÛ Ú©Ù Ø²ÛØ± رشت٠Ù
ÙØ±Ø¯ ÙØ¸Ø± Ù¾ÛØ¯Ø§ شد ÛØ§ اگر ÚÛØ²Û Ù¾ÛØ¯Ø§ ÙØ´Ø¯ -1 را برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯.
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
let str = 'Widget with id';
alert( str.indexOf('Widget') ); // 0 ØØ¯Ø± Ø´Ø±ÙØ¹ Ø±Ø´ØªÙ Ù¾ÛØ¯Ø§ شد 'Widget' ÚÙÙ
alert( str.indexOf('widget') ); // -1 ØÚÛØ²Û Ù¾ÛØ¯Ø§ ÙØ´Ø¯Ø Ø¬Ø³ØªØ¬Ù Ø¨Ù Ø¨Ø²Ø±Ú¯Û ÛØ§ Ú©ÙÚÚ©Û ØØ±ÙÙ ØØ³Ø§Ø³ است
alert( str.indexOf("id") ); // 1 Ø(است id Ø¯Ø§Ø±Ø§Û ..idget) در Ù
ÙÙØ¹Ûت 1 Ù¾ÛØ¯Ø§ شد "id"
پارا٠تر Ø§Ø®ØªÛØ§Ø±Û دÙ٠ب٠٠ا اجاز٠جستج٠از Ù ÙÙØ¹Ûت داد٠شد٠را Ù ÛâØ¯ÙØ¯.
Ø¨Ø±Ø§Û Ù
Ø«Ø§ÙØ اÙÙÛÙ "id" Ú©Ù ÙØ¬Ùد دارد در Ù
ÙÙØ¹Ûت 1 است. Ø¨Ø±Ø§Û Ù¾ÛØ¯Ø§ Ú©Ø±Ø¯Ù Ø¨Ø¹Ø¯ÛØ Ø¨ÛØ§ÛÛØ¯ جستج٠را از Ù
ÙÙØ¹Ûت 2 Ø´Ø±ÙØ¹ Ú©ÙÛÙ
:
let str = 'Widget with id';
alert( str.indexOf('id', 2) ) // 12
اگر Ù
ا Ù
شتا٠اÛÙ ÙØ³ØªÛÙ
ک٠تÙ
اÙ
Ø¢ÙÙØ§ را Ù¾ÛØ¯Ø§ Ú©ÙÛÙ
Ø Ù
ÛâØªÙØ§ÙÛÙ
indexOf را Ø¯ÙØ±Ù ÛÚ© ØÙÙ٠اجرا Ú©ÙÛÙ
. تÙ
اÙ
صدازدÙâÙØ§Û Ø¬Ø¯ÛØ¯ با Ù
ÙÙØ¹ÛØªÛ Ø¨Ø¹Ø¯ از Ù
ÙÙØ¹Ûت Ø²ÛØ± رشتÙâÛ Ù¾ÛØ¯Ø§ Ø´Ø¯Ù ÙØ¨ÙÛ Ø§ÙØ¬Ø§Ù
Ù
ÛâØ´ÙØ¯:
let str = 'As sly as a fox, as strong as an ox';
let target = 'as'; // Ø¨ÛØ§ÛÛØ¯ Ø¨Ù Ø¯ÙØ¨Ø§Ù آ٠بگردÛÙ
let pos = 0;
while (true) {
let foundPos = str.indexOf(target, pos);
if (foundPos == -1) break;
alert( `Found at ${foundPos}` );
pos = foundPos + 1; // جستج٠را از Ù
ÙÙØ¹Ûت Ø¨Ø¹Ø¯Û Ø§Ø¯Ø§Ù
٠بدÙ
}
اÙÚ¯ÙØ±Ûت٠Ûکسا٠را Ù ÛâØªÙØ§Ù Ú©ÙØªØ§ÙâØªØ± ÙÙØ´Øª:
let str = "As sly as a fox, as strong as an ox";
let target = "as";
let pos = -1;
while ((pos = str.indexOf(target, pos + 1)) != -1) {
alert( pos );
}
Ù
تد str.lastIndexOf(substr, position)ÛÚ© ٠تد ٠شاب٠str.lastIndexOf(substr, position) ÙÙ ÙØ¬Ùد دارد ک٠از Ø§ÙØªÙØ§Û Ø±Ø´ØªÙ ØªØ§ آغاز آ٠جستج٠٠ÛâÚ©ÙØ¯.
اÛ٠٠تد Ø²ÛØ± رشتÙâÙØ§Û Ù¾ÛØ¯Ø§ شد٠را با ØªØ±ØªÛØ¨ برعکس ÙÛØ³Øª Ù ÛâÚ©ÙØ¯.
ÛÚ© ÚÛØ² ÙØ§Ø®ÙشاÛÙØ¯ در رابط٠با indexOf در if ÙØ¬Ùد دارد. Ù
ا ÙÙ
ÛâØªÙØ§ÙÛÙ
آ٠را اÛÙÚ¯ÙÙ٠درÙÙ if بگذارÛÙ
:
let str = "Widget with id";
if (str.indexOf("Widget")) {
alert("We found it"); // !کار ÙÙ
ÛâÚ©ÙØ¯
}
در Ù
Ø«Ø§Ù Ø¨Ø§ÙØ§ alert ÙÙ
Ø§ÛØ´ ÙÙ
ÛâØ¯ÙØ¯ Ø²ÛØ±Ø§ str.indexOf("Widget") Ù
ÙØ¯Ø§Ø± 0 را برÙ
ÛâÚ©Ø±Ø¯Ø§ÙØ¯ (ب٠اÛÙ Ù
عÙÛ Ú©Ù Ø²ÛØ± رشت٠Ù
ÙØ±Ø¯ ÙØ¸Ø± را در Ù
ÙÙØ¹Ûت آغازÛÙ Ù¾ÛØ¯Ø§ کرد). درست Ø§Ø³ØªØ Ø§Ù
ا if Ù
ÙØ¯Ø§Ø± 0 را با false برابر ÙØ±Ø¶ Ù
ÛâÚ©ÙØ¯.
Ø¨ÙØ§Ø¨Ø±Ø§ÛÙØ Ù
ا Ø¨Ø§ÛØ¯ در ÙØ§Ùع -1 را Ø¨Ø±Ø±Ø³Û Ú©ÙÛÙ
Ø Ø¨Ù Ø§ÛÙ Ø´Ú©Ù:
let str = "Widget with id";
if (str.indexOf("Widget") != -1) {
alert("We found it"); // !ØØ§Ùا کار Ù
ÛâÚ©ÙØ¯
}
Ù ØªØ¯ÙØ§Û includesØ startsWithØ endsWith
Ù
تد Ù
درÙâØªØ± str.includes(substr, pos) با ÙØ§Ø¨Ø³ØªÚ¯Û ب٠اÛÙک٠رشت٠str درÙÙ Ø®ÙØ¯Ø´ Ø¯Ø§Ø±Ø§Û Ø²ÛØ± رشتÙâÛ substr است ÛØ§ ÙÙ Ù
ÙØ¯Ø§Ø± true/false را برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯.
اگر ÙÛØ§Ø² داشت٠باشÛÙ Ú©Ù ÙØ¬Ùد ÛÚ© Ø²ÛØ± رشت٠را Ø¨Ø±Ø±Ø³Û Ú©ÙÛÙ Ø Ø§Ù Ø§ ب٠٠ÙÙØ¹Ûت Ø¢Ù ÙÛØ§Ø²Û ÙØ¯Ø§Ø±Û٠اÛ٠٠تد Ø§ÙØªØ®Ø§Ø¨ Ù ÙØ§Ø³Ø¨Û است:
alert( "Widget with id".includes("Widget") ); // true
alert( "Hello".includes("Bye") ); // false
آرگÙÙ
ا٠دÙÙ
Ù Ø§Ø®ØªÛØ§Ø±Û str.includes Ù
ÙÙØ¹ÛØªÛ Ø§Ø³Øª ک٠جستج٠از Ø¢Ù Ø´Ø±ÙØ¹ Ù
ÛâØ´ÙØ¯:
alert( "Widget".includes("id") ); // true
alert( "Widget".includes("id", 3) ); // false ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯ پس "id" از Ù
ÙÙØ¹Ûت 3 ÙÛØ¬
Ù ØªØ¯ÙØ§Û str.startsWith(Ø¨Ø±Ø±Ø³Û Ø´Ø±ÙØ¹ شد٠رشت٠با ÛÚ© Ø²ÛØ± رشتÙ) Ù str.endsWith(Ø¨Ø±Ø±Ø³Û Ù¾Ø§ÛØ§Ù ÛØ§Ùت٠رشت٠با ÛÚ© Ø²ÛØ± رشتÙ) دÙÛÙØ§ Ú©Ø§Ø±Û Ø±Ø§ Ú©Ù Ù ÛâÚ¯ÙÛÙØ¯ Ø§ÙØ¬Ø§Ù Ù ÛâØ¯ÙÙØ¯:
alert( "Widget".startsWith("Wid") ); // true Ø´Ø±ÙØ¹ Ù
ÛâØ´ÙØ¯ پس "Wid" با "Widget"
alert( "Widget".endsWith("get") ); // true Ù¾Ø§ÛØ§Ù Ù
ÛâÛØ§Ø¨Ø¯ پس "get" با "Widget"
Ú¯Ø±ÙØªÙ ÛÚ© Ø²ÛØ± رشتÙ
در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت 3 Ù
تد Ø¨Ø±Ø§Û Ú¯Ø±ÙØªÙ ÛÚ© Ø²ÛØ± Ø±Ø´ØªÙ ÙØ¬Ùد دارد: substringØ substr Ù slice.
str.slice(start [, end])-
ÙØ³Ù ØªÛ Ø§Ø² رشت٠را از Ù ÙÙØ¹Ûت
startتاend(شا٠ÙendÙÙ ÛâØ´ÙØ¯) را بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯.Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
let str = "stringify"; alert( str.slice(0, 5) ); // 'strin' :Ø²ÛØ± رشت٠از 0 تا 5 (شا٠٠5 ÙÙ ÛâØ´ÙØ¯) alert( str.slice(0, 1) ); // 's' :از 0 تا 1Ø Ø§Ù Ø§ شا٠٠1 ÙÙ ÛâØ´ÙØ¯Ø پس ÙÙØ· Ú©Ø§Ø±Ø§Ú©ØªØ±Û Ú©Ù Ø¯Ø± 0 استاگر ÙÛÚ Ø¢Ø±Ú¯Ù٠ا٠دÙÙ Û Ø¯Ø± کار ÙØ¨Ø§Ø´Ø¯Ø سپس
sliceتا آخر رشت٠٠ÛâØ±ÙØ¯:let str = "stringify"; alert( str.slice(2) ); // 'ringify' :از Ù ÙÙØ¹Ûت دÙ٠تا Ø¢Ø®Ø±Ù ÙØ¯Ø§Ø±ÙØ§Û Ù ÙÙÛ Ø¨Ø±Ø§Û
start/endÙÙ Ù Ù Ú©Ù ÙØ³ØªÙد. Ø¢ÙÙØ§ ب٠اÛ٠٠عÙÛ ÙØ³ØªÙد Ú©Ù Ù ÙÙØ¹Ûت از آخر رشت٠ش٠ارش Ù ÛâØ´ÙØ¯:let str = "stringify"; // از Ù ÙÙØ¹Ûت 4 از س٠ت راست Ø´Ø±ÙØ¹ Ù ÛâØ´ÙØ¯Ø در Ù ÙÙØ¹Ûت 1 از س٠ت راست Ù¾Ø§ÛØ§Ù Ù ÛâÛØ§Ø¨Ø¯ alert( str.slice(-4, -1) ); // 'gif' str.substring(start [, end])-
ÙØ³Ù ØªÛ Ø§Ø² رشت٠بÛÙ
startÙendرا بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯ (شا٠ÙendÙÙ ÛâØ´ÙØ¯).اÛ٠٠تد ØªÙØ±Ûبا ٠شاب٠با
sliceØ§Ø³ØªØ Ø§Ù Ø§ اÛ٠اجاز٠را Ù ÛâØ¯ÙØ¯ Ú©ÙstartØ¨ÛØ´ØªØ± ازendباشد (در اÛÙ ØµÙØ±Øª Ù ÙØ¯Ø§Ø±ÙاÛstartÙendرا جابجا Ù ÛâÚ©ÙØ¯).Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
let str = "stringify"; // ÛÚ©Ø³Ø§Ù ÙØ³ØªÙد substring اÛÙ Ø¯Ù Ø¨Ø±Ø§Û alert( str.substring(2, 6) ); // "ring" alert( str.substring(6, 2) ); // "ring" // ...اÛÙØ·Ùر ÙÛØ³Øª slice ا٠ا Ø¨Ø±Ø§Û alert( str.slice(2, 6) ); // "ring" (Ûکسا٠است) alert( str.slice(6, 2) ); // "" (ÛÚ© رشت٠خاÙÛ)آرگÙ٠اÙâÙØ§Û Ù ÙÙÛ (Ø¨Ø±Ø®ÙØ§Ù slice) Ù¾Ø´ØªÛØ¨Ø§ÙÛ ÙÙ ÛâØ´ÙÙØ¯Ø با Ø¢ÙÙØ§ ٠اÙÙØ¯
0Ø±ÙØªØ§Ø± Ù ÛâØ´ÙØ¯. str.substr(start [, length])-
ÙØ³Ù ØªÛ Ø§Ø² رشت٠از
startØ ØªØ§length(Ø·ÙÙ) داد٠شد٠را بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯.در تضاد با Ù ØªØ¯ÙØ§Û ÙØ¨ÙÛØ اÛ٠٠تد ب٠٠ا اجاز٠٠ÛâØ¯ÙØ¯ Ú©Ù Ø¨Ù Ø¬Ø§Û Ù ÙÙØ¹Ûت Ù¾Ø§ÛØ§ÙÛ
length(Ø·ÙÙ) را تعÛÛÙ Ú©ÙÛÙ :let str = "stringify"; alert( str.substr(2, 4) ); // 'ring' :از Ù ÙÙØ¹Ûت دÙÙ 4 کاراکتر را Ø¨Ú¯ÛØ±Ø§ÙÙÛ٠آرگÙ٠ا٠٠ÛâØªÙØ§Ùد Ø¨Ø±Ø§Û Ø´Ù Ø§Ø±Ø´ از Ø¢Ø®Ø±Ø Ù ÙÙÛ Ø¨Ø§Ø´Ø¯:
let str = "stringify"; alert( str.substr(-4, 2) ); // 'gi' :از Ù ÙÙØ¹Ûت ÚÙØ§Ø±Ù 2 کاراکتر را Ø¨Ú¯ÛØ±
Ø¨ÛØ§ÛÛØ¯ اÛÙ Ù ØªØ¯ÙØ§ را Ø¨Ø±Ø§Û Ø¬ÙÙÚ¯ÛØ±Û از ÙØ± گ٠راÙÛ Ø®ÙØ§ØµÙ Ú©ÙÛÙ :
| ٠تد | Ø§ÙØªØ®Ø§Ø¨ Ù ÛâÚ©ÙØ¯â¦ | Ù ÙÙÛâÙØ§ |
|---|---|---|
slice(start, end) |
از start تا end (شاÙ
Ù end ÙÙ
ÛâØ´ÙØ¯) |
Ù ÙÙÛâÙØ§ Ù Ø¬Ø§Ø²ÙØ¯ |
substring(start, end) |
بÛÙ start Ù end (شاÙ
Ù end ÙÙ
ÛâØ´ÙØ¯) |
Ù
ÙØ¯Ø§Ø± Ù
ÙÙÛ Ø¨Ù Ù
Ø¹ÙØ§Û 0 است |
substr(start, length) |
از start ب٠تعداد length کاراکتر Ù
ÛâÚ¯ÛØ±Ø¯ |
start Ù
ÙÙÛ Ù
جاز است |
تÙ
اÙ
Ø¢ÙÙØ§ Ù
ÛâØªÙØ§ÙÙØ¯ کار را Ø§ÙØ¬Ø§Ù
دÙÙØ¯. Ø¨Ù Ø·ÙØ± رسÙ
ÛØ substr ÛÚ© Ø§Ø´Ú©Ø§Ù Ø¬Ø²Ø¦Û Ø¯Ø§Ø±Ø¯: اÛÙ Ù
تد در ÙØ³ØªÙ Ù
شخصات Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت تعرÛÙ ÙØ´Ø¯Ù Ø§Ø³ØªØ Ø§Ù
ا در Annex B تعرÛÙ Ø´Ø¯ÙØ Ú©Ù ÙÙØ· ÙÛÚÚ¯ÛâÙØ§Û Ù
ختص ب٠Ù
Ø±ÙØ±Ú¯Ø± را Ù¾ÙØ´Ø´ Ù
ÛâØ¯ÙØ¯ Ú©Ù Ø¨Ù Ø¯ÙØ§ÛÙÛ Ù
Ø±Ø¨ÙØ· Ø¨Ù ØªØ§Ø±ÛØ®ÚÙ Ø²Ø¨Ø§Ù ÙØ¬Ùد دارد. پس Ù
ØÛØ·âÙØ§ÛÛ Ú©Ù Ù
Ø±ÙØ±Ú¯Ø± ÙØ¨Ø§Ø´Ùد Ù
Ù
ک٠است از Ø¢Ù Ù¾Ø´ØªÛØ¨Ø§ÙÛ ÙÚ©ÙÙØ¯. اÙ
ا در عÙ
٠اÛÙ Ù
تد ÙÙ
ÙâØ¬Ø§ کار Ù
ÛâÚ©ÙØ¯.
از بÛ٠د٠Ù
تد دÛÚ¯Ø±Ø slice Ù
ÙØ¯Ø§Ø±Û ÙØ§Ø¨Ù Ø§ÙØ¹Ø·Ø§ÙâØªØ± Ø§Ø³ØªØ Ù Ø¢Ø±Ú¯ÙÙ
اÙâÙØ§Û Ù
ÙÙÛ Ø±Ø§ Ù
جاز Ù
ÛâØ¯Ø§ÙØ¯ Ù Ø¨Ø±Ø§Û ÙÙØ´ØªÙ Ú©ÙØªØ§ÙâØªØ± است.
پس Ø¨Ø±Ø§Û Ø§Ø³ØªÙØ§Ø¯ÙâÙØ§Û عÙ
ÙÛ Ø¨Ù ÛØ§Ø¯ داشت٠slice کاÙÛ Ø§Ø³Øª.
Ù ÙØ§Ûس٠رشتÙâÙØ§
ÙÙ Ø§ÙØ·Ùر ک٠از ÙØµÙ Ù ÙØ§ÛØ³Ù ÙØ§ (Ù ÙØ§ÛسÙâÙØ§) Ù ÛâØ¯Ø§ÙÛÙ Ø Ø±Ø´ØªÙâÙØ§ با ØªØ±ØªÛØ¨ اÙÙØ¨Ø§ÛÛ Ú©Ø§Ø±Ø§Ú©ØªØ± ب٠کاراکتر Ù ÙØ§Ûس٠٠ÛâØ´ÙÙØ¯.
گرÚÙØ جزÛÛØ§ØªÛ ÙØ¬Ùد دارد.
-
ÛÚ© ØØ±Ù Ú©ÙÚÚ© اÙÚ¯ÙÛØ³Û ÙÙ ÛØ´Ù از ØØ±Ù Ø¨Ø²Ø±Ú¯Ø Ø¨Ø²Ø±Ú¯ØªØ± است:
alert( 'a' > 'Z' ); // true -
ØØ±ÙÙÛ Ú©Ù Ø¹ÙØ§Ù ت Ø¯Ø§Ø±ÙØ¯ âØ¨Ø¯ÙÙ ØªØ±ØªÛØ¨â ÙØ³ØªÙد:
alert( 'Ãsterreich' > 'Zealand' ); // trueاگر ٠ا اس٠اÛÙ Ú©Ø´ÙØ±Ùا را ٠رتب Ú©ÙÛ٠اÛÙ Ù ÙØ¶Ùع ٠٠ک٠است باعث Ø§ÛØ¬Ø§Ø¯ ÙØªØ§Ûج Ø¹Ø¬ÛØ¨ Ø´ÙØ¯. ٠ع٠ÙÙØ§ ٠رد٠تÙÙØ¹ Ø¯Ø§Ø´ÙØ¯ Ú©Ù
Zealandبعد ازÃsterreichدر ÙÛØ³Øª Ø¨ÛØ§Ûد.
<<<<<<< HEAD Ø¨Ø±Ø§Û ÙÙÙ ÛØ¯Ù اÛÙÚ©Ù ÚÙ ÚÛØ²Û رخ Ù ÛâØ¯ÙØ¯Ø Ø¨ÛØ§ÛÛØ¯ ÙÙ Ø§ÛØ´ داخÙÛ Ø±Ø´ØªÙâÙØ§ را در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت Ù Ø±ÙØ± Ú©ÙÛÙ .
ت٠ا٠رشتÙâÙØ§ با Ø§Ø³ØªÙØ§Ø¯Ù از UTF-16 Ú©Ø¯Ú¯Ø°Ø§Ø±Û Ø´Ø¯ÙâØ§ÙØ¯. ÛØ¹ÙÛ Ø§ÛÙÚ©Ù: ÙØ± کاراکتر ÛÚ© کد Ø¹Ø¯Ø¯Û Ù ØªÙØ§Ø¸Ø± دارد. Ù ØªØ¯ÙØ§Û Ø®Ø§ØµÛ ÙØ³ØªÙد Ú©Ù Ú¯Ø±ÙØªÙ کد از کاراکتر ٠برعکس را Ù Ù Ú©Ù Ù ÛâØ³Ø§Ø²ÙØ¯.
To understand what happens, we should be aware that strings in Javascript are encoded using UTF-16. That is: each character has a corresponding numeric code.
There are special methods that allow to get the character for the code and back:
18b1314af4e0ead5a2b10bb4bacd24cecbb3f18e
str.codePointAt(pos)-
ÛÚ© عدد Ø¯ÙØ¯ÙÛ Ú©Ù ÙÙ Ø§ÛØ§Ùâگر کد کاراکتر در Ù ÙÙØ¹Ûت
posاست را بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯:// ØØ±Ù٠با Ø¨Ø²Ø±Ú¯Û ÛØ§ Ú©ÙÚÚ©Û Ù ØªÙØ§Ùت Ú©Ø¯ÙØ§Û Ù ØªÙØ§Ùت Ø¯Ø§Ø±ÙØ¯ alert( "z".codePointAt(0) ); // 122
<<<<<<< HEAD alert( âZâ.codePointAt(0) ); // 90 alert( âzâ.codePointAt(0).toString(16) ); // 7a (اگر ٠ا Ø¨Ù Ù ÙØ¯Ø§Ø± ÙگزادسÛ٠ا٠کد ÙÛØ§Ø² داشت٠باشÛÙ )
alert( "z".codePointAt(0).toString(16) ); // 7a (if we need a hexadecimal value)
18b1314af4e0ead5a2b10bb4bacd24cecbb3f18e
```
String.fromCodePoint(code)-
ÛÚ© کاراکتر با Ø§Ø³ØªÙØ§Ø¯Ù از
Ú©Ø¯Ø¹Ø¯Ø¯Û Ø¢Ù Ù ÛâØ³Ø§Ø²Ø¯:alert( String.fromCodePoint(90) ); // Z alert( String.fromCodePoint(0x5a) ); // Z (ÙÙ ÚÙÛÙ Ù ÛâØªÙØ§ÙÛ٠از ÛÚ© Ù ÙØ¯Ø§Ø± ÙگزادسÛ٠ا٠ب٠عÙÙØ§Ù آرگÙÙ Ø§Ù Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ )
<<<<<<< HEAD
ÙÙ
ÚÙÛÙ Ù
ا Ù
ÛâØªÙØ§ÙÛÙ
Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§Û Unicode را از طرÛ٠کد Ø¢ÙÙØ§ با Ø§Ø³ØªÙØ§Ø¯Ù از \u ک٠بعد از آ٠کد hex Ù
ÛâØ¢ÛØ¯ اضاÙÙ Ú©ÙÛÙ
:
```js run
// 5a عدد 90 در Ø³ÛØ³ØªÙ
Ø¹Ø¯Ø¯Û Ø¨Ø± پاÛÙ 16 برابر است با
alert( '\u005a' ); // Z
```
ØØ§Ù Ø¨ÛØ§ÛÛØ¯ با ساخت٠ÛÚ© رشت٠از Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§ÛÛ Ú©Ù Ú©Ø¯ 65..220 Ø¯Ø§Ø±ÙØ¯ Ø¢ÙÙØ§ را ÙÚ¯Ø§Ù Ø¨ÛØ§ÙدازÛÙ
(ØØ±Ù٠اÙÙØ¨Ø§Û ÙØ§ØªÛÙ Ù Ú©Ù
Û Ø¨ÛØ´ØªØ±):
Now letâs see the characters with codes 65..220 (the latin alphabet and a little bit extra) by making a string of them:
18b1314af4e0ead5a2b10bb4bacd24cecbb3f18e
let str = '';
for (let i = 65; i <= 220; i++) {
str += String.fromCodePoint(i);
}
alert( str );
// Output:
// ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÂÂÂÂÂ
// ¡¢£¤¥¦§¨©ª«¬Â®¯°±²³´µ¶·¸¹º»¼½¾¿ÃÃÃÃÃÃ
ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ
Ù
ÛâØ¨ÛÙÛØ¯Ø Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§Û ØØ±Ù٠بزرگ اÙÙ ÙØ³ØªÙØ¯Ø Ø³Ù¾Ø³ ÚÙØ¯ ØØ±Ù Ø®Ø§ØµØ Ø³Ù¾Ø³ Ú©Ø§Ø±Ú©ØªØ±ÙØ§Û ØØ±ÙÙ Ú©ÙÚÚ©Ø Ù Ã ÙØ²Ø¯ÛÚ© Ø¨Ù Ù¾Ø§ÛØ§Ù Ø®Ø±ÙØ¬Û است.
ØØ§Ùا ÙØ§Ø¶Ø شد Ú©Ù ÚØ±Ø§ a > Z.
Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§ از طرÛÙ Ú©Ø¯ÙØ§Û Ø¹Ø¯Ø¯Û Ø®ÙØ¯ Ù
ÙØ§Ûس٠Ù
ÛâØ´ÙÙØ¯. کد بزرگتر ب٠Ù
Ø¹ÙØ§Û بزرگتر Ø¨ÙØ¯Ù کاراکتر است. کد a (97) بزرگتر از کد Z (90) است.
- ØªÙ Ø§Ù ØØ±ÙÙ Ú©ÙÚÚ© اÙÚ¯ÙÛØ³Û بعد از ØØ±Ù٠بزرگ ÙØ§Ùع ÙØ³ØªÙد ÚÙÙ Ú©Ø¯ÙØ§Û Ø¢ÙÙØ§ بزرگتر ÙØ³ØªÙد.
- Ø¨Ø¹Ø¶Û Ø§Ø² ØØ±ÙÙ Ù
اÙÙØ¯
ÃØ§Ø² ØØ±Ù٠اÙÙØ¨Ø§Û اصÙÛ Ø¬Ø¯Ø§ ÙØ³ØªÙد. اÛÙØ¬Ø§Ø کد آ٠از ÙØ± ÚÛØ²Û بÛÙaتاzبزرگتر است.
Ù ÙØ§ÛسÙâÙØ§Û صØÛØ
اÙÚ¯ÙØ±ÛØªÙ âØ¯Ø±Ø³Øªâ Ø¨Ø±Ø§Û Ø§ÙØ¬Ø§Ù Ù ÙØ§Ûس٠رشتÙâÙØ§ Ù¾ÛÚÛØ¯ÙâØªØ± از ÚÛØ²Û است Ú©Ù Ø¨ÙØ¸Ø± Ù ÛâØ¢ÛØ¯Ø ÚÙ٠اÙÙØ¨Ø§ Ø¨Ø±Ø§Û Ø²Ø¨Ø§ÙâÙØ§Û ٠ختÙÙ Ù ØªÙØ§Ùت است.
Ù¾Ø³Ø Ù Ø±ÙØ±Ú¯Ø± ÙÛØ§Ø² دارد ک٠زبا٠را Ø¨Ø±Ø§Û Ù ÙØ§ÛØ³Ù Ú©Ø±Ø¯Ù Ø¨Ø¯Ø§ÙØ¯.
<<<<<<< HEAD Ø®ÙØ´Ø¨Ø®ØªØ§ÙÙØ ØªÙ Ø§Ù Ù Ø±ÙØ±Ú¯Ø±ÙØ§Û Ù Ø¯Ø±Ù (IE10 ب٠کتابخاÙ٠اضاÙÛ Intl.js Ø§ØØªÛاج دارد) از Ø§Ø³ØªØ§ÙØ¯Ø§Ø±Ø¯ بÛÙâØ§ÙÙ ÙÙÛâکرد٠ECMA-402 Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ù ÛâÚ©ÙÙØ¯.
Luckily, modern browsers support the internationalization standard ECMA-402.
18b1314af4e0ead5a2b10bb4bacd24cecbb3f18e
اÛÙ Ø§Ø³ØªØ§ÙØ¯Ø§Ø±Ø¯ ÛÚ© ٠تد خاص را Ø¨Ø±Ø§Û Ù ÙØ§Ûس٠رشتÙâÙØ§ در زباÙâÙØ§Û ٠ختÙ٠را Ù ÙÛØ§ Ù ÛâÚ©ÙØ¯ ک٠از ÙÙØ§ÙÛÙ Ø®ÙØ¯Ø´Ø§Ù Ù¾ÛØ±ÙÛ Ù ÛâØ´ÙØ¯.
صدازد٠str.localeCompare(str2) ÛÚ© عدد صØÛØ Ø±Ø§ برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯ Ú©Ù ÙØ´Ø§Ù Ù
ÛâØ¯ÙØ¯ Ø¢ÛØ§ str با ØªÙØ¬Ù ب٠ÙÙØ§ÙÛÙ Ø²Ø¨Ø§ÙØ Ú©Ù
ØªØ±Ø Ù
ساÙÛ ÛØ§ برابر از str2 ÙØ³Øª ÛØ§ ÙÙ:
- اگر
strک٠تر ازstr2باشد ÛÚ© عدد Ù ÙÙÛ Ø¨Ø±Ù ÛâÚ¯Ø±Ø¯Ø§ÙØ¯. - اگر
strبزرگتر ازstr2باشد ÛÚ© عدد ٠ثبت بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯. - اگر Ø¢ÙÙØ§ برابر Ø¨Ø§Ø´ÙØ¯
0را بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯.
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
alert( 'Ãsterreich'.localeCompare('Zealand') ); // -1
اÛÙ Ù
تد د٠آرگÙÙ
ا٠اضاÙÛ Ø¯Ø§Ø±Ø¯ ک٠در Ù
Ø³ØªÙØ¯Ø§Øª Ù
شخص شدÙâØ§ÙØ¯ ک٠ب٠Ù
ا اجاز٠Ù
ÛâØ¯ÙÙØ¯ تا زبا٠را Ù
شخص Ú©ÙÛÙ
(Ø¨Ù Ø·ÙØ± Ù¾ÛØ´âÙØ±Ø¶ از Ø´Ø±Ø§ÛØ· ÙØ¹ÙÛ Ø¨Ø¯Ø³Øª Ù
ÛâØ¢ÛØ¯Ø ØªØ±ØªÛØ¨ ØØ±ÙÙ Ø¨Ù Ø²Ø¨Ø§Ù Ø¨Ø³ØªÚ¯Û Ø¯Ø§Ø±Ø¯) Ù ÙÙØ§ÙÛ٠اضاÙÛ Ø±Ø§ Ø§ÛØ¬Ø§Ø¯ Ú©ÙÛÙ
Ù
Ø«Ù ØØ³Ø§Ø³Ûت Ø¨Ø²Ø±Ú¯Û ÛØ§ Ú©ÙÚÚ©Û ØØ±Ù ÛØ§ اÛÙک٠ب٠ÛÚ© ØµÙØ±Øª با "a" Ù "á" Ø±ÙØªØ§Ø± Ø´ÙØ¯ Ù ØºÛØ±Ù.
<<<<<<< HEAD
داخÙÛâÙØ§Ø Unicode
اÛ٠بخش Ø¨ÛØ´ØªØ± درÙ٠رشتÙâÙØ§ Ù¾ÛØ´ Ù ÛâØ±ÙØ¯. اÛÙ Ø§Ø·ÙØ§Ø¹Ø§Øª در ØµÙØ±ØªÛ ک٠ش٠ا ÙØµØ¯ Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯ با Ø§Ù ÙØ¬ÛØ Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§Û تصÙÛØ±Û ÙØ§Ø¯Ø± Ø±ÛØ§Ø¶Û ÛØ§ ÙØ´Ø§ÙÙâÙØ§Û ÙØ§Ø¯Ø± دÛگر کار Ú©ÙÛØ¯ Ø¨Ø±Ø§Û Ø´Ù Ø§ Ù ÙÛØ¯ Ø®ÙØ§Ùد Ø¨ÙØ¯.
Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§Û Unicode
ÙÙ Ø§ÙØ·Ùر Ú©Ù ÙØ¨Ùا ÙÙ Ú¯ÙØªÛÙ Ø Ø±Ø´ØªÙâÙØ§Û Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت بر اساس Unicode است.
ÙØ± کاراکتر ØªÙØ³Ø· ÛÚ© Ø¯ÙØ¨Ø§Ù٠از 1-4 Ø¨Ø§ÛØª ÙØ´Ø³Ø§Ù داد٠٠ÛâØ´ÙØ¯.
Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت ب٠٠ا اجاز٠٠ÛâØ¯ÙØ¯ Ú©Ù ÛÚ© کاراکتر را Ù٠با اضاÙ٠کرد٠آ٠ب٠ÛÚ© Ø±Ø´ØªÙ Ø¨Ù ØµÙØ±Øª ٠ستÙÛ٠تعÛÛÙ Ú©ÙÛ٠بÙک٠با Ø§Ø³ØªÙØ§Ø¯Ù از اÛÙ Ø³Ù ÙØ´Ø§ÙÙ ØªÙØ³Ø· کد ÙگزادسÛ٠ا٠Unicode Ù٠آ٠را ٠شخص Ú©ÙÛÙ :
-
\xXXâ ÛÚ© کاراکتر ک٠کد Unicode Ø¢ÙU+00XXاست.XXد٠رÙÙ ÙگزادسÛ٠ا٠با Ù ÙØ¯Ø§Ø±Û بÛÙ00ÙFFاست پس ÙØ´Ø§ÙÙ\xXXÙÙØ· Ù ÛâØªÙØ§Ùد Ø¨Ø±Ø§Û 256 کاراکتر اÙÙ Unicode Ø§Ø³ØªÙØ§Ø¯Ù Ø´ÙØ¯ (شا٠٠ت٠ا٠128 ASCII کاراکتر Ù ÛâØ´ÙØ¯).اÛÙ 256 کاراکتر اÙÙ Ø´Ø§Ù Ù ØØ±Ù٠اÙÙØ¨Ø§Û ÙØ§ØªÛÙØ اکثر Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§Û سÛÙØªÚ©Ø³ پاÛ٠٠دÛگر Ù ÙØ§Ø±Ø¯ Ù ÛâØ´ÙÙØ¯. Ø¨Ø±Ø§Û Ù Ø«Ø§ÙØ
"\x7A"با"z"Ûکسا٠است (UnicodeU+007A). -
/uXXXXâ Ú©Ø§Ø±Ø§Ú©ØªØ±Û Ú©Ù Ú©Ø¯ Unicode Ø¢ÙU+XXXXاست (ÛÚ© کاراکتر با کد ÙگزادسÛ٠اÙXXXXØ¨Ù ØµÙØ±Øª UTF-16 Ú©Ø¯Ú¯Ø°Ø§Ø±Û Ø´Ø¯Ù Ø§Ø³Øª).XXXXØ¨Ø§ÛØ¯ دÙÛÙØ§ 4 رÙ٠٠با Ù ÙØ¯Ø§Ø±Û بÛÙ0000ÙFFFFباشد پس ÙØ´Ø§ÙÙ\uXXXXÙ ÛâØªÙØ§Ùد Ø¨Ø±Ø§Û 65536 کاراکتر اÙÙ Ø§Ø³ØªÙØ§Ø¯Ù Ø´ÙØ¯. Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§ÛÛ Ø¨Ø§ Ù ÙØ¯Ø§Ø± Unicode Ø¨ÛØ´ØªØ± ازU+FFFFÙÙ Ù ÛâØªÙØ§ÙÙØ¯ با اÛÙ ÙØ´Ø§ÙÙ ÙÙ Ø§ÛØ´ داد٠شÙÙØ¯ ا٠ا در اÛÙ ØµÙØ±Øª ٠ا Ø¨Ø§ÛØ¯ از ÚÛØ²Û Ø¨Ù Ø§ØµØ·ÙØ§Ø surrogate pair (ترج٠Ù: Ø¬ÙØª جاÛÚ¯ÛØ±) Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ (دربار٠اÛÙ Ø¬ÙØª Ú©Ù Û Ø¨Ø¹Ø¯ØªØ± در اÛÙ Ù ÙØ§ÙÙ ØµØØ¨Øª Ù ÛâÚ©ÙÛÙ ). -
u{Xâ¦XXXXXX}â Ú©Ø§Ø±Ø§Ú©ØªØ±Û Ø¨Ø§ ÙØ± کد Unicode (ÛÚ© کاراکتر با کد ÙگزادسÛÙ Ø§Ù Ú©Ù Ø¨Ù ØµÙØ±Øª UTF-32 Ú©Ø¯Ú¯Ø°Ø§Ø±Û Ø´Ø¯Ù Ø§Ø³Øª).Xâ¦XXXXXXØ¨Ø§ÛØ¯ Ù ÙØ¯Ø§Ø±Û ÙگزادسÛ٠ا٠با 1 تا 6 Ø¨Ø§ÛØª بÛÙ0Ù10FFFFباشد (بزرگترÛ٠کد تعرÛÙ Ø´Ø¯Ù ØªÙØ³Ø· Unicode). اÛÙ ÙØ´Ø§Ù٠ب٠٠ا اجاز٠٠ÛâØ¯ÙØ¯ تا Ø¨Ù Ø³Ø§Ø¯Ú¯Û ØªÙ Ø§Ù Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§Û Unicode Ù ÙØ¬Ùد را ÙÙ Ø§ÛØ´ دÙÛÙ .
٠ثاÙâÙØ§ÛÛ Ø¨Ø§ Unicode:
alert( "\uA9" ); // © ØØ¹ÙاÙ
ت Ú©Ù¾ÛâØ±Ø§ÛØª
alert( "\u00A9" ); // © ØÙ
اÙÙØ¯ Ø¨Ø§ÙØ§Ø با Ø§Ø³ØªÙØ§Ø¯Ù از ÙØ´Ø§ÙÙ ÙگزادسÛÙ
ا٠4 رÙÙ
Û
alert( "\u044F" ); // Ñ Øcyrillic ØØ±Ù اÙÙØ¨Ø§Û
alert( "\u2191" ); // â, ÙÙ
اد Ú©Ù
Ø§Ù Ø±Ù Ø¨Ù Ø¨Ø§ÙØ§
alert( "\u{20331}" ); // 佫 Ø(Ø·ÙÙØ§ÙÛ Unicode) ÛÚ© ØØ±Ù تصÙÛØ±Û ÚÛÙÛ Ú©Ù
ÛØ§Ø¨
alert( "\u{1F60D}" ); // ð Ø(Ø·ÙÙØ§ÙÛ Ø¯Ûگر Unicode ÛÚ©) ÛÚ© ÙÙ
اد ØµÙØ±Øª Ø®ÙØ¯Ø§Ù
Ø¬ÙØªâÙØ§Û جاÛÚ¯ÛØ±
ØªÙ Ø§Ù Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§ÛÛ Ú©Ù Ø§Ú©Ø«Ø± اÙÙØ§Øª Ø§Ø³ØªÙØ§Ø¯Ù Ù ÛâØ´ÙÙØ¯ Ú©Ø¯ÙØ§Û 2 Ø¨Ø§ÛØªÛ Ø¯Ø§Ø±ÙØ¯. ØØ±Ù٠در اکثر زباÙâÙØ§Û ارÙپاÛÛØ Ø§Ø¹Ø¯Ø§Ø¯Ø Ù ØØªÛ اکثر ØØ±Ù٠تصÙÛØ±ÛØ ÛÚ© ÙÙ Ø§ÛØ´ 2 Ø¨Ø§ÛØªÛ Ø¯Ø§Ø±ÙØ¯.
در Ø§Ø¨ØªØ¯Ø§Ø Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت بر اساس Ú©Ø¯Ú¯Ø°Ø§Ø±Û UTF-16 Ø¨ÙØ¯ Ú©Ù ÙÙØ· 2 Ø¨Ø§ÛØª Ø¨Ù Ø§Ø²Ø§Û ÙØ± کاراکتر را Ù Ù Ú©Ù Ù ÛâØ³Ø§Ø®Øª. ا٠ا 2 Ø¨Ø§ÛØª ÙÙØ· 65536 ØªØ±Ú©ÛØ¨ را Ù Ù Ú©Ù Ù ÛâØ³Ø§Ø²Ø¯ ٠اÛÙ Ù ÙØ¯Ø§Ø± Ø¨Ø±Ø§Û ÙØ± ÙØ´Ø§ÙÙ Ù ÙØ¬Ùد کاÙÛ ÙÛØ³Øª.
پس ÙÙ Ø§Ø¯ÙØ§Û ÙØ§Ø¯Ø± با Ø¬ÙØªÛ از Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§Û 2 Ø¨Ø§ÛØªÛ Ú©Ù âØ¬ÙØª جاÛÚ¯ÛØ±â (surrogate pair) ÙÙ ÙØ§Ù ÛØ¯Ù Ù ÛâØ´ÙÙØ¯ Ú©Ø¯Ú¯Ø°Ø§Ø±Û Ù ÛâØ´ÙÙØ¯.
ب٠عÙÙØ§Ù ÛÚ© Ø¹Ø§Ø±Ø¶Ù Ø¬Ø§ÙØ¨ÛØ Ø·ÙÙ ÚÙÛÙ ÙØ´Ø§ÙÙâÙØ§ÛÛ 2 است:
alert( 'ð³'.length ); // 2Ø X اسکرÛپت Ø±ÛØ§Ø¶Û ØØ±Ù بزرگ
alert( 'ð'.length ); // 2Ø ØµÙØ±Øª با اشک Ø´ÙÙ
alert( 'ð©·¶'.length ); // 2Ø ÛÚ© ØØ±Ù تصÙÛØ±Û ÙØ§Ø¯Ø± ÚÛÙÛ
دÙÛÙØ´ اÛ٠است Ú©Ù Ø¬ÙØªâÙØ§Û جاÛÚ¯ÛØ± ز٠اÙÛ Ú©Ù Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت ساخت٠شد ÙØ¬Ùد ÙØ¯Ø§Ø´ØªÙØ¯Ø Ù Ø¨Ù Ø§Û٠دÙÛ٠در ØØ§Ù ØØ§Ø¶Ø± ØªÙØ³Ø· Ø²Ø¨Ø§Ù Ø¨Ù Ø¯Ø±Ø³ØªÛ Ù¾Ø±Ø¯Ø§Ø²Ø´ ÙÙ ÛâØ´ÙÙØ¯!
Ù
ا در ÙØ§Ùع در ÙØ± ÛÚ© از رشتÙâÙØ§Û Ø¨Ø§ÙØ§ ÛÚ© ÙØ´Ø§ÙÙ Ù
ÙØ±Ø¯ دارÛÙ
Ø Ø§Ù
ا length Ø·ÙÙ 2 را ÙØ´Ø§Ù Ù
ÛâØ¯ÙØ¯.
Ú¯Ø±ÙØªÙ ÛÚ© ÙØ´Ø§ÙÙ Ù ÛâØªÙØ§Ùد Ø¢Ø³Ø§Ù ÙØ¨Ø§Ø´Ø¯Ø ÚÙÙ Ø¨ÛØ´ØªØ± Ø®Ø§ØµÛØªâÙØ§Û زبا٠با Ø¬ÙØªâÙØ§Û جاÛÚ¯ÛØ± ٠ث٠د٠کاراکتر Ø±ÙØªØ§Ø± Ù ÛâÚ©ÙÙØ¯.
Ø¨Ø±Ø§Û Ù Ø«Ø§ÙØ ٠ا اÛÙØ¬Ø§ د٠کاراکتر Ø¹Ø¬ÛØ¨ را در Ø®Ø±ÙØ¬Û Ù ÛâØªÙØ§ÙÛ٠ببÛÙÛÙ :
alert( 'ð³'[0] ); // ...ÙØ´Ø§ÙÙâÙØ§Û Ø¹Ø¬ÛØ¨
alert( 'ð³'[1] ); // ÙØ·Ø¹ÙâÙØ§ÛÛ Ø§Ø² Ø¬ÙØª جاÛÚ¯ÛØ±...
ØªÙØ¬Ù Ú©ÙÛØ¯ Ú©Ù ÙØ·Ø¹ÙâÙØ§Û Ø¬ÙØª جاÛÚ¯ÛØ± بدÙÙ ÛکدÛگر ÙÛÚ Ù Ø¹ÙÛâØ§Û ÙØ¯Ø§Ø±Ùد. پس alertÙØ§ در Ù Ø«Ø§Ù Ø¨Ø§ÙØ§ در ÙØ§Ùع ÚÛØ²ÙØ§Û Ø¨Ø¯Ø±Ø¯ ÙØ®Ùر ÙÙ Ø§ÛØ´ Ù ÛâØ¯ÙÙØ¯.
Ø¨Ù Ø·ÙØ± ÙÙÛØ Ø¬ÙØªâÙØ§Û جاÛÚ¯ÛØ± ÙÙ
با Ú©Ø¯ÙØ§Û Ø®ÙØ¯ ÙØ§Ø¨Ù Ø´ÙØ§Ø³Ø§ÛÛ ÙØ³ØªÙد: اگر ÛÚ© کاراکتر Ú©Ø¯Û Ø¯Ø± ÙØ§ØµÙÙ 0xd800..0xdbff Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´Ø¯Ø Ù¾Ø³ ÙØ·Ø¹Ù اÙÙ ÛÚ© Ø¬ÙØª جاÛÚ¯ÛØ± است. کاراکتر Ø¨Ø¹Ø¯Û (ÙØ·Ø¹Ù دÙÙ
) Ø¨Ø§ÛØ¯ Ú©Ø¯Û Ø¯Ø± ÙØ§ØµÙÙ 0xdc00..0xdfff داشت٠باشد. اÛ٠بازÙâÙØ§ Ø¨Ù Ø·ÙØ± Ø§Ø®ØªØµØ§ØµÛ Ø¨Ø±Ø§Û Ø¬ÙØªâÙØ§Û جاÛÚ¯ÛØ± رزر٠شدÙâØ§ÙØ¯.
پس Ù
ØªØ¯ÙØ§Û String.fromCodePoint Ù str.codePointAt Ø¨Ø±Ø§Û Ú©Ø§Ø± کرد٠با Ø¬ÙØªâÙØ§Û جاÛÚ¯ÛØ± Ø¨Ù Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت اضاÙÙ Ø´Ø¯ÙØ¯.
Ø¢ÙâÙØ§ اساسا با String.fromCharCode Ù str.charCodeAt ÛÚ©Ø³Ø§Ù ÙØ³ØªÙد ا٠ا با Ø¬ÙØªâÙØ§Û جاÛÚ¯ÛØ± Ø¨Ù Ø¯Ø±Ø³ØªÛ Ø±ÙØªØ§Ø± Ù ÛâÚ©ÙÙØ¯.
Ù ÛâØªÙØ§ÙÛØ¯ ØªÙØ§Ùت را اÛÙØ¬Ø§ ببÛÙÛØ¯:
// را ÙØªÛج٠Ù
ÛâØ¯ÙØ¯ ð³ Ø¬ÙتâÙØ§Û جاÛÚ¯ÛØ± را ÙÙ
ÛâÙØ§Ø³Ø¯ پس کد اÙÙÛÙ ÙØ³Ù
ت charCodeAt
alert( 'ð³'.charCodeAt(0).toString(16) ); // d835
// Ø¬ÙØªâÙØ§Û جاÛÚ¯ÛØ± را Ù
ÛâØ´ÙØ§Ø³Ø¯ codePointAt
alert( 'ð³'.codePointAt(0).toString(16) ); // 1d4b3 ØÙر Ø¯Ù ÙØ³Ù
ت Ø¬ÙØª جاÛÚ¯ÛØ± را Ù
ÛâØ®ÙØ§Ùد
با اÛÙ ØØ§ÙØ Ø§Ú¯Ø± ٠ا از Ù ÙÙØ¹Ûت 1 Ø§ÙØªØ®Ø§Ø¨ Ú©ÙÛÙ (٠اÛ٠کار اÛÙØ¬Ø§ اشتبا٠است)Ø Ø³Ù¾Ø³ ÙØ± دÙÛ Ø¢ÙâÙØ§ ÙÙØ· ÙØ³Ù ت دÙÙ Ø¬ÙØª را بر٠ÛâگرداÙÙØ¯:
alert( 'ð³'.charCodeAt(1).toString(16) ); // dcb3
alert( 'ð³'.codePointAt(1).toString(16) ); // dcb3
// ÙØ³Ù
ت دÙÙ
بÛâÙ
Ø¹ÙØ§Û Ø¬ÙØª
ش٠ا راÙâÙØ§Û Ø¨ÛØ´ØªØ±Û را Ø¨Ø±Ø§Û Ú©Ø§Ø±Ú©Ø±Ø¯Ù Ø¨Ø§ Ø¬ÙØªâÙØ§Û جاÛÚ¯ÛØ± را در ÙØµÙ ØÙÙÙâÙ¾Ø°ÛØ±Ùا Ù ÛâØ¢Ù ÙØ²Ûد. ÙÙ ÚÙÛÙ Ø§ØØªÙ Ø§ÙØ§ کتابخاÙÙâÙØ§Û Ø®Ø§ØµÛ Ø¨Ø±Ø§Û Ø¢ÙÙØ§ ÙØ¬Ùد Ø¯Ø§Ø±Ø¯Ø Ø§Ù Ø§ ÙÛØ¬ Ú©Ø¯Ø§Ù Ø¨Ù Ø§ÙØ¯Ø§Ø²Ù کاÙÛ Ù Ø¹Ø±ÙÙ ÙÛØ³ØªÙد تا اÛÙØ¬Ø§ ٠عرÙÛ Ø´ÙÙØ¯.
We canât just split a string at an arbitrary position, e.g. take str.slice(0, 4) and expect it to be a valid string, e.g.:
Ù
ا ÙÙ
ÛâØªÙØ§ÙÛÙ
ÛÚ© رشت٠را در ÛÚ© ÙÙØ·Ù Ø¯ÙØ®Ùا٠جدا Ú©ÙÛÙ
Ù
Ø«ÙØ§ str.slic(0, 4) را در ÙØ¸Ø± Ø¨Ú¯ÛØ±ÛÙ
٠تÙÙØ¹ ÛÚ© رشت٠Ù
عتبر را داشت٠باشÛÙ
Ø Ù
Ø«ÙØ§:
alert( 'hi ð'.slice(0, 4) ); // hi [?]
اÛÙØ¬Ø§ Ù ÛâØªÙØ§ÙÛÙ ÛÚ© کاراکتر بدرد ÙØ®Ùر را در Ø®Ø±ÙØ¬Û ببÛÙÛÙ (اÙÙÛÙ ÙØ³Ù ت از Ø¬ÙØª جاÛÚ¯ÛØ± Ø¹ÙØ§Ù ت Ø®ÙØ¯Ù).
اگر Ù ÛâØ®ÙØ§ÙÛØ¯ با اعت٠اد کا٠٠با Ø¬ÙØªâÙØ§Û جاÛÚ¯ÛØ± کار Ú©ÙÛØ¯ از اÛÙ Ù ÙØ¶Ùع Ø¢Ú¯Ø§Ù Ø¨Ø§Ø´ÛØ¯. Ø´Ø§ÛØ¯ Ù Ø´Ú©Ù Ø¨Ø²Ø±Ú¯Û ÙØ¨Ø§Ø´Ø¯ ا٠ا ش٠ا ØØ¯Ø§ÙÙ Ø¨Ø§ÛØ¯ بداÙÛØ¯ Ú©Ù Ø§ØªÙØ§ÙÛ Ù ÛâØ§ÙØªØ¯.
ÙØ´Ø§ÙÙâÙØ§Û تÙÚ©ÛÚ© Ú©ÙÙØ¯Ù ٠عادÛâØ³Ø§Ø²Û
در Ø¨Ø³ÛØ§Ø±Û از زباÙâÙØ§ ÙØ´Ø§ÙÙâÙØ§ÛÛ ÙØ¬Ùد Ø¯Ø§Ø±ÙØ¯ Ú©Ù ØªØ±Ú©ÛØ¨Û از ÛÚ© کاراکتر پاÛÙ Ù ÛÚ© Ø¹ÙØ§Ù ت در Ø¨Ø§ÙØ§/پاÛÛÙ Ø¢Ù ÙØ³ØªÙد.
Ø¨Ø±Ø§Û Ù
Ø«Ø§ÙØ ØØ±Ù a ØØ±Ù پاÛÙ Ø¨Ø±Ø§Û Ã Ã¡Ã¢Ã¤Ã£Ã¥Ä Ø§Ø³Øª.
اکثر Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§Û Â«ØªØ±Ú©ÛØ¨âشدÙ» ٠تداÙ٠کد Ø®ÙØ¯ را در جدÙÙ UTF-16 Ø¯Ø§Ø±ÙØ¯. ا٠ا ÙÙ Ù٠٠آÙÙØ§Ø ÚÙÙ ØªØ±Ú©ÛØ¨Ø§Øª Ù Ù Ú©Ù Ø¨Ø³ÛØ§Ø± Ø²ÛØ§Ø¯Û ÙØ¬Ùد دارد.
Ø¨Ø±Ø§Û Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ø§Ø² ØªØ±Ú©ÛØ¨Ø§Øª Ø¯ÙØ®ÙØ§ÙØ UTF-16 ب٠٠ا اجاز٠٠ÛâØ¯ÙØ¯ ک٠از ÚÙØ¯ کاراکتر Unicode Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ : کاراکتر پاÛ٠ک٠بعد از Ø¢Ù ÛÚ© ÛØ§ ÚÙØ¯ کاراکتر Â«Ø¹ÙØ§Ù ت» Ù ÛâØ¢ÛØ¯ ک٠آ٠را Â«Ø²ÛØ¨Ø§ Ù ÛâÚ©ÙØ¯Â».
Ø¨Ø±Ø§Û Ù
Ø«Ø§ÙØ اگر Ù
ا ÛÚ© ØØ±Ù S داشت٠باشÛÙ
ک٠بعد از آ٠کاراکتر خاص «ÙÙØ·Ù Ø¨Ø§ÙØ§Â» Ø¢Ù
د٠باشد (کد \u0307)Ø Ø¨Ù ØµÙØ±Øª á¹ ÙÙ
Ø§ÛØ´ داد٠Ù
ÛâØ´ÙØ¯.
alert( 'S\u0307' ); // á¹
اگر ٠ا ÙÛØ§Ø² ب٠ÛÚ© Ø¹ÙØ§Ù ت اضاÙÛ Ø¯Ø± Ø¨Ø§ÙØ§Û ØØ±Ù داشت٠باشÛÙ (ÛØ§ پاÛÛ٠آÙ)Ø Ù Ø´Ú©ÙÛ ÙÛØ³ØªØ ÙÙØ· کاراکتر Ø¹ÙØ§Ù ت Ù ÙØ±Ø¯ ÙÛØ§Ø² را اضاÙÙ Ù ÛâÚ©ÙÛÙ .
Ø¨Ø±Ø§Û Ù
Ø«Ø§ÙØ اگر Ù
ا ÛÚ© کاراکتر «ÙÙØ·Ù پاÛÛÙ» (کد \u0323) را ضÙ
ÛÙ
Ù Ú©ÙÛÙ
Ø Ø³Ù¾Ø³ Ù
ا Â«ØØ±Ù S با ÙÙØ·ÙâÙØ§ÛÛ Ø¯Ø± Ø¨Ø§ÙØ§ ٠پاÛÛ٠آÙ» Ø®ÙÙÛÙ
داشت: Ṩ.
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
alert( 'S\u0307\u0323' ); // Ṩ
اÛÙ Ø±ÙØ´ Ø§ÙØ¹Ø·Ø§Ù Ø²ÛØ§Ø¯Û را Ù ÙÛØ§ Ù ÛâÚ©ÙØ¯Ø ا٠ا ÛÚ© Ù Ø´Ú©Ù Ø¬Ø§ÙØ¨ Ù٠دارد: د٠کاراکتر ٠٠ک٠است Ú©Ù Ø¸Ø§ÙØ± ÛکساÙÛ Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÙØ¯Ø ا٠ا با ØªØ±Ú©ÛØ¨Ø§Øª Unicode Ù ØªÙØ§Ùت ÙÙ Ø§ÛØ´ داد٠شÙÙØ¯.
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
let s1 = 'S\u0307\u0323'; // Ṩ ØÙÙØ·Ù Ø¨Ø§ÙØ§ + ÙÙØ·Ù پاÛÛÙ + S
let s2 = 'S\u0323\u0307'; // Ṩ ØÙÙØ·Ù پاÛÛÙ + ÙÙØ·Ù Ø¨Ø§ÙØ§ + S
alert( `s1: ${s1}, s2: ${s2}` );
alert( s1 == s2 ); // (!Ø)Ù
ÛâØ´ÙØ¯ false با اÛÙÚ©Ù Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§ Ù
Ø´Ø§Ø¨Ù ÙØ³ØªÙد اÙ
ا
Ø¨Ø±Ø§Û Ø±ÙØ¹ اÛÙ Ù Ø´Ú©ÙØ ÛÚ© اÙÚ¯ÙØ±Ûت٠«عادÛâØ³Ø§Ø²Û Unicode» ÙØ¬Ùد دارد Ú©Ù ÙØ± رشت٠را ب٠ÛÚ© شک٠«عادÛ» در٠ÛâØ¢ÙØ±Ø¯.
اÛ٠اÙÚ¯ÙØ±Ûت٠با str.normalize() Ù¾ÛØ§Ø¯ÙâØ³Ø§Ø²Û Ù ÛâØ´ÙØ¯.
alert( "S\u0307\u0323".normalize() == "S\u0323\u0307".normalize() ); // true
Ù
ÙØ¶Ùع باÙ
زÙâØ§Û Ø§Ø³Øª ک٠در اÛÙ Ù
ÙØ±Ø¯ Ù
ا normalize() در ÙØ§Ùع ÛÚ© Ø¯ÙØ¨Ø§Ù٠از 3 کاراکتر را ب٠ÛÚ© کاراکتر تبدÛÙ Ù
ÛâÚ©ÙØ¯: \u1e68 (S ب٠ÙÙ
را٠د٠ÙÙØ·Ù).
alert( "S\u0307\u0323".normalize().length ); // 1
alert( "S\u0307\u0323".normalize() == "\u1e68" ); // true
در ÙØ§ÙØ¹ÛØªØ ÙÙ
ÛØ´Ù اÛÙ Ù
ÙØ±Ø¯ Ù¾ÛØ´ ÙÙ
ÛâØ¢ÛØ¯. ب٠دÙÛ٠اÛÙÚ©Ù ÙÙ
اد Ṩ Ø¨Ù Ø§ÙØ¯Ø§Ø²Ù «کاÙÛ» Ù
تداÙÙ Ø§Ø³ØªØ Ù¾Ø³ Ø³Ø§Ø²ÙØ¯Ú¯Ø§Ù Unicode آ٠را در جدÙ٠اصÙÛ Ø¢ÙØ±Ø¯Ùد ٠ب٠آ٠ÛÚ© کد Ø¯Ø§Ø¯ÙØ¯.
اگر ش٠ا Ù ÛâØ®ÙØ§ÙÛØ¯ دربار٠ÙÙØ§ÙÛ٠٠اÙÙØ§Ø¹ عادÛâØ³Ø§Ø²Û Ø¨Ø¯Ø§ÙÛØ¯Ø Ø¢ÙÙØ§ در ض٠ÛÙ Ù Ø§Ø³ØªØ§ÙØ¯Ø§Ø±Ø¯ Unicode تعرÛ٠شدÙâØ§ÙØ¯: Ø´Ú©ÙâÙØ§Û عادÛâØ³Ø§Ø²Û UnicodeØ Ø§Ù Ø§ Ø¨Ø±Ø§Û Ø§Ú©Ø«Ø± Ú©Ø§Ø±ÙØ§Û ع٠ÙÛ Ù Ú©Ø§Ø±Ø¨Ø±Ø¯Û Ø§Ø·ÙØ§Ø¹Ø§Øª اÛ٠بخش کاÙÛ Ø§Ø³Øª.
Ø®ÙØ§ØµÙ
- 3 ÙÙØ¹ Ú©ÙØªÛØ´Ù ÙØ¬Ùد دارد. BacktickÙØ§ ب٠Ù
ا اÛ٠اÙ
کا٠را Ù
ÛâØ¯ÙÙØ¯ ک٠رشت٠را ب٠ÚÙØ¯ خط ØªÙØ³ÛÙ
Ú©ÙÛÙ
٠عبارتâÙØ§ÛÛ Ø±Ø§ درÙ٠رشت٠جاÛÚ¯Ø°Ø§Ø±Û Ú©ÙÛÙ
${â¦}. - رشتÙâÙØ§ در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت با Ø§Ø³ØªÙØ§Ø¯Ù از UTF-16 Ú©Ø¯Ú¯Ø°Ø§Ø±Û Ø´Ø¯ÙâØ§ÙØ¯.
- Ù
ا Ù
ÛâØªÙØ§ÙÛÙ
از Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§Û خاص Ù
اÙÙØ¯
\nØ§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ Ù ØØ±Ù٠را از طرÛ٠کد Unicode Ø¢ÙÙØ§ با Ø§Ø³ØªÙØ§Ø¯Ù از\u...بÙÙÛØ³ÛÙ . - Ø¨Ø±Ø§Û Ú¯Ø±ÙØªÙ ÛÚ© Ú©Ø§Ø±Ø§Ú©ØªØ±Ø Ø§Ø²
[]Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯. - Ø¨Ø±Ø§Û Ú¯Ø±ÙØªÙ ÛÚ© Ø²ÛØ± رشت٠از
sliceÛØ§substringØ§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯. - Ø¨Ø±Ø§Û ØªØºÛÛØ± Ø¨Ø²Ø±Ú¯Û ÛØ§ Ú©ÙÚÚ©Û ØØ±Ù٠اÙÚ¯ÙÛØ³Û ÛÚ© Ø±Ø´ØªÙØ از
toLowerCase/toUpperCaseØ§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯. - Ø¨Ø±Ø§Û Ú¯Ø´ØªÙ Ø¨Ù Ø¯ÙØ¨Ø§Ù ÛÚ© Ø²ÛØ± رشت٠از
indexOfÛØ§ Ø¨Ø±Ø§Û Ø¨Ø±Ø±Ø³ÛâÙØ§Û ساد٠ازincludes/startsWith/endsWithØ§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯. - Ø¨Ø±Ø§Û Ù
ÙØ§Ûس٠رشتÙâÙØ§ با ØªÙØ¬Ù ب٠زبا٠آÙÙØ§Ø از
localeCompareØ§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯Ø در ØºÛØ± اÛÙ ØµÙØ±Øª Ø¢ÙÙØ§ ØªÙØ³Ø· Ú©Ø¯ÙØ§Û کاراکتر Ù ÙØ§Ûس٠٠ÛâØ´ÙÙØ¯. =======
Summary
- There are 3 types of quotes. Backticks allow a string to span multiple lines and embed expressions
${â¦}. - We can use special characters, such as a line break
\n. - To get a character, use:
[]oratmethod. - To get a substring, use:
sliceorsubstring. - To lowercase/uppercase a string, use:
toLowerCase/toUpperCase. - To look for a substring, use:
indexOf, orincludes/startsWith/endsWithfor simple checks. - To compare strings according to the language, use:
localeCompare, otherwise they are compared by character codes.
18b1314af4e0ead5a2b10bb4bacd24cecbb3f18e
ÚÙØ¯ ٠تد دÛگر ÙÙ Ø¨Ø±Ø§Û Ø±Ø´ØªÙâÙØ§ ÙØ¬Ùد دارد:
str.trim()â ÙØ§ØµÙ٠را از ابتدا Ù Ø§ÙØªÙØ§Û Ø±Ø´ØªÙ ØØ°Ù Ù ÛâÚ©ÙØ¯ («٠ÛâØªØ±Ø§Ø´Ø¯Â»).str.repeat(n)â Ø±Ø´ØªÙ راnبار تکرار Ù ÛâÚ©ÙØ¯.- â¦Ù Ù ØªØ¯ÙØ§Û Ø¨ÛØ´ØªØ±Û در Ù Ø³ØªÙØ¯Ø§Øª ÙØ¬Ùد Ø¯Ø§Ø±ÙØ¯.
<<<<<<< HEAD رشتÙâÙØ§ Ù ØªØ¯ÙØ§ÛÛ Ø±Ø§ Ø¨Ø±Ø§Û Ø¬Ø³ØªØ¬Ù/جاÛگزÛÙâکرد٠عبارات با ÙØ§Ø¹Ø¯Ù (regular expression) Ø¯Ø§Ø±ÙØ¯. ا٠ا اÛÙ ÛÚ© Ø¨ØØ« بزرگ Ø§Ø³ØªØ Ù¾Ø³ در ÛÚ© ÙØ³Ù ت Ø¬Ø¯Ø§Û Ø§ÛÙ Ø¢Ù ÙØ²Ø´ عبارات Ø¨Ø§ÙØ§Ø¹Ø¯Ù (Regular Expression) ØªÙØ¶ÛØ Ø¯Ø§Ø¯Ù Ø´Ø¯Ù Ø§Ø³Øª.
Strings also have methods for doing search/replace with regular expressions. But thatâs big topic, so itâs explained in a separate tutorial section عبارات Ø¨Ø§ÙØ§Ø¹Ø¯Ù (Regular Expression).
Also, as of now itâs important to know that strings are based on Unicode encoding, and hence thereâre issues with comparisons. Thereâs more about Unicode in the chapter ÛÙÙÛâÚ©Ø¯Ø Ø¯Ø±Ù٠رشتÙâÙØ§. <<<<<<< HEAD
18b1314af4e0ead5a2b10bb4bacd24cecbb3f18e ======= 8d9ecb724c7df59774d1e5ffb5e5167740b7d321
ÙØ¸Ø±Ø§Øª
<code>Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯Ø Ø¨Ø±Ø§Û ÚÙØ¯Û٠خط â کد را درÙ٠تگ<pre>ÙØ±Ø§Ø± دÙÛØ¯Ø Ø¨Ø±Ø§Û Ø¨ÛØ´ از د٠خط کد â Ø§Ø² ÛÚ© جعبÙÙ Ø´ÙÛ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯. (plnkrØ jsbinØ codepenâ¦)