تماس با ما

متدهای String

رشته‌ها immutable هستن: هیچ متدی رشته‌ی اصلی رو تغییر نمی‌ده، همیشه رشته‌ی جدید برمی‌گردونه.

رشته‌ها immutable هستن: هیچ متدی رشته‌ی اصلی رو تغییر نمی‌ده، همیشه رشته‌ی جدید برمی‌گردونه.

const s = "Hello, World";

ویژگی

s.length; // → 12
s[0];     // → "H"
s.at(-1); // → "d"  (اندیس منفی از آخر)

جستجو

متدکار
indexOf(x, from?)اولین اندیس، یا -1
lastIndexOf(x)آخرین اندیس
includes(x)آیا شامل هست؟
startsWith(x)شروع با؟
endsWith(x)پایان با؟
search(regex)اندیس اولین تطابق regex
match(regex)تطابق‌ها
matchAll(regex)iterator همه‌ی تطابق‌ها (با گروه‌ها)
s.indexOf("o");        // → 4
s.lastIndexOf("o");    // → 8
s.indexOf("zzz");      // → -1
s.includes("World");   // → true
s.startsWith("Hello"); // → true
s.endsWith("d");       // → true
s.search(/W/);         // → 7
"a1b22".match(/\d+/g); // → ["1", "22"]
[..."a1b22".matchAll(/(\d+)/g)].map(m => m[1]); // → ["1", "22"]

استخراج بخشی از رشته

s.slice(0, 5);    // → "Hello"
s.slice(-5);      // → "World"
s.slice(7);       // → "World"
s.substring(7, 12); // → "World"  (اندیس منفی رو 0 می‌گیره)
s.substr(7, 5);   // → "World"  ⚠️ منسوخ (deprecated)
s.charAt(1);      // → "e"
s.charCodeAt(0);  // → 72
s.codePointAt(0); // → 72  (برای ایموجی و یونیکد درست‌تره)

slice رو ترجیح بده.

تغییر حروف

s.toUpperCase();   // → "HELLO, WORLD"
s.toLowerCase();   // → "hello, world"
s.toLocaleUpperCase("tr"); // با قواعد محلی زبان
"dž".normalize();   // نرمال‌سازی یونیکد

حرف اول بزرگ:

const cap = (t) => t.charAt(0).toUpperCase() + t.slice(1);
cap("ali"); // → "Ali"

حذف فاصله

"  hi  ".trim();       // → "hi"
"  hi  ".trimStart();  // → "hi  "
"  hi  ".trimEnd();    // → "  hi"

پر کردن (Padding)

"5".padStart(3, "0");   // → "005"
"5".padEnd(3, "*");     // → "5**"

تکرار

"ab".repeat(3); // → "ababab"

جایگزینی

"a-b-c".replace("-", "+");       // → "a+b-c"  (فقط اولی)
"a-b-c".replaceAll("-", "+");    // → "a+b+c"
"a-b-c".replace(/-/g, "+");      // → "a+b+c"
"john smith".replace(/(\w+) (\w+)/, "$2 $1"); // → "smith john"
"abc".replace(/b/, (m) => m.toUpperCase());   // → "aBc"

جدا کردن و چسباندن

"a,b,c".split(",");        // → ["a", "b", "c"]
"abc".split("");           // → ["a", "b", "c"]
"a,b,c".split(",", 2);     // → ["a", "b"]
"a1b2".split(/\d/);        // → ["a", "b", ""]
["a", "b"].join("-");      // → "a-b"
"a".concat("b", "c");      // → "abc"

مقایسه

"a".localeCompare("b");    // → -1
"b".localeCompare("a");    // → 1
"a".localeCompare("a");    // → 0
["ب", "الف"].sort((x, y) => x.localeCompare(y, "fa")); // → ["الف", "ب"]

یونیکد

"😀".length;                 // → 2  (surrogate pair)
[..."😀"].length;            // → 1
String.fromCharCode(72, 105);       // → "Hi"
String.fromCodePoint(128512);       // → "😀"
String.raw`C:\new\table`;           // → "C:\\new\\table" (بدون escape)
"x".isWellFormed?.();               // ES2024

متدهای کاربردی ترکیبی

// معکوس کردن رشته
[..."hello"].reverse().join("");   // → "olleh"

// شمارش تکرار یک حرف
"banana".split("a").length - 1;    // → 3

// پالیندروم
const isPal = (t) => t === [...t].reverse().join("");
isPal("level"); // → true

// slug
"Hello World JS".toLowerCase().split(" ").join("-"); // → "hello-world-js"

// کوتاه کردن با ...
const cut = (t, n) => (t.length > n ? t.slice(0, n) + "…" : t);
cut("طولانی‌ترین متن", 5);

Escape Characters

کاراکترمعنی
\nخط جدید
\tTab
\\بک‌اسلش
\" \'کوتیشن
\u0041یونیکد (A)
console.log("خط۱\nخط۲\tTab");

خلاصه‌ی همه‌ی متدها

at, charAt, charCodeAt, codePointAt, concat, endsWith, includes, indexOf, lastIndexOf, localeCompare, match, matchAll, normalize, padEnd, padStart, repeat, replace, replaceAll, search, slice, split, startsWith, substring, toLocaleLowerCase, toLocaleUpperCase, toLowerCase, toString, toUpperCase, trim, trimEnd, trimStart, valueOf, isWellFormed, toWellFormed

ایده‌ای دارید؟ برایمان بگویید

مشاوره و پیشنهاد اولیه رایگان است.

تماس با ما