Phương thức chuỗi JavaScript
Các phương thức chuỗi cơ bản
Chuỗi Javascript là nguyên thủy và bất biến: Tất cả các phương thức chuỗi đều tạo ra một chuỗi mới mà không làm thay đổi chuỗi gốc.
Độ dài chuỗi JavaScript
Thuộc tính length
trả về độ dài của chuỗi:
Trích xuất ký tự chuỗi
Có 4 phương pháp trích xuất ký tự chuỗi:
- Phương thức
at( position )
- Phương thức
charAt( position )
- Phương thức
charCodeAt( position )
- Sử dụng quyền truy cập thuộc tính [] như trong mảng
Chuỗi ký tự JavaScript charAt()
Phương thức charAt()
trả về ký tự tại một chỉ mục (vị trí) được chỉ định trong chuỗi:
Chuỗi JavaScript charCodeAt()
Phương thức charCodeAt()
trả về mã của ký tự tại một chỉ mục được chỉ định trong chuỗi:
Phương thức này trả về mã UTF-16 (một số nguyên từ 0 đến 65535).
Chuỗi JavaScript tại()
ES2022 đã giới thiệu phương thức chuỗi at()
:
Ví dụ
Lấy chữ cái thứ ba của tên:
const name = "W3Schools";
let letter = name.at(2);
Hãy tự mình thử »Lấy chữ cái thứ ba của tên:
const name = "W3Schools";
let letter = name[2];
Hãy tự mình thử » Phương thức at()
trả về ký tự tại một chỉ mục (vị trí) được chỉ định trong một chuỗi.
Phương thức at()
được hỗ trợ trong tất cả các trình duyệt hiện đại kể từ tháng 3 năm 2022:
Ghi chú
Phương thức at()
là một bổ sung mới cho JavaScript.
Nó cho phép sử dụng các chỉ mục phủ định trong khi charAt()
thì không.
myString.at(-2)
thay vì charAt(myString.length-2)
.Hỗ trợ trình duyệt
at()
là một tính năng ES2022.
JavaScript 2022 (ES2022) được hỗ trợ trong tất cả các trình duyệt hiện đại kể từ tháng 3 năm 2023:
Chrome 94 | Edge 94 | Firefox 93 | Safari 16.4 | Opera 79 |
Sep 2021 | Sep 2021 | Oct 2021 | Mar 2023 | Oct 2021 |
Quyền truy cập thuộc tính [ ]
Ghi chú
Quyền truy cập tài sản có thể hơi khó đoán:
- Nó làm cho các chuỗi trông giống như mảng (nhưng thực tế không phải vậy)
- Nếu không tìm thấy ký tự nào, [ ] trả về không xác định, trong khi charAt() trả về một chuỗi trống.
- Nó chỉ được đọc. str[0] = "A" không có lỗi (nhưng không hoạt động!)
Ví dụ
let text = "HELLO WORLD";
text[0] = "A"; // Gives no error, but does not work
Hãy tự mình thử »Trích xuất các bộ phận chuỗi
Có 3 phương pháp để trích xuất một phần của chuỗi:
-
slice( start , end )
-
substring( start , end )
-
substr( start , length )
Lát chuỗi JavaScript()
slice()
trích xuất một phần của chuỗi và trả về phần được trích xuất trong chuỗi mới.
Phương thức này có 2 tham số: vị trí bắt đầu và vị trí kết thúc (không bao gồm điểm cuối).
Ví dụ
Cắt một phần của chuỗi từ vị trí 7 đến vị trí 13:
let text = "Apple, Banana, Kiwi";
let part = text.slice(7, 13);
Hãy tự mình thử »Ghi chú
JavaScript đếm các vị trí từ số 0.
Vị trí đầu tiên là 0.
Vị trí thứ hai là 1.
Ví dụ
Nếu bạn bỏ qua tham số thứ hai, phương thức sẽ cắt phần còn lại của chuỗi:
let text = "Apple, Banana, Kiwi";
let part = text.slice(7);
Hãy tự mình thử »Nếu tham số âm, vị trí được tính từ cuối chuỗi:
let text = "Apple, Banana, Kiwi";
let part = text.slice(-12);
Hãy tự mình thử »Ví dụ này cắt một phần của chuỗi từ vị trí -12 đến vị trí -6:
let text = "Apple, Banana, Kiwi";
let part = text.slice(-12, -6);
Hãy tự mình thử » Chuỗi con chuỗi JavaScript()
substring()
tương tự như slice()
.
Sự khác biệt là giá trị bắt đầu và kết thúc nhỏ hơn 0 được coi là 0 trong substring()
.
Nếu bạn bỏ qua tham số thứ hai, substring()
sẽ cắt phần còn lại của chuỗi.
Chất nền chuỗi JavaScript()
substr()
tương tự như slice()
.
Sự khác biệt là tham số thứ hai chỉ định độ dài của phần được trích xuất.
Nếu bạn bỏ qua tham số thứ hai, substr()
sẽ cắt phần còn lại của chuỗi.
Nếu tham số đầu tiên là số âm thì vị trí sẽ được tính từ cuối chuỗi.
Chuyển đổi sang chữ hoa và chữ thường
Một chuỗi được chuyển đổi thành chữ hoa với toUpperCase()
:
Một chuỗi được chuyển đổi thành chữ thường với toLowerCase()
:
Chuỗi JavaScript toUpperCase()
Chuỗi JavaScript toLowerCase()
Ví dụ
let text1 = "Hello World!"; // String
let text2 = text1.toLowerCase(); // text2 is text1
converted to lower
Hãy tự mình thử »Chuỗi JavaScript concat()
concat()
nối hai hoặc nhiều chuỗi:
Ví dụ
let text1 = "Hello";
let text2 = "World";
let text3 = text1.concat(" ", text2);
Hãy tự mình thử » Phương thức concat()
có thể được sử dụng thay cho toán tử dấu cộng. Hai dòng này làm tương tự:
Ví dụ
text = "Hello" + " " + "World!";
text = "Hello".concat(" ", "World!");
Ghi chú
Tất cả các phương thức chuỗi đều trả về một chuỗi mới. Họ không sửa đổi chuỗi gốc.
Chính thức nói:
Chuỗi không thể thay đổi: Chuỗi không thể thay đổi, chỉ thay thế.
Cắt chuỗi JavaScript()
Phương thức trim()
loại bỏ khoảng trắng ở cả hai bên của chuỗi:
Chuỗi JavaScript cắtStart()
ECMAScript 2019 đã thêm phương thức String trimStart()
vào JavaScript.
Phương thức trimStart()
hoạt động giống như trim()
nhưng chỉ loại bỏ khoảng trắng ở đầu chuỗi.
Chuỗi JavaScript trimStart()
được hỗ trợ trong tất cả các trình duyệt hiện đại kể từ tháng 1 năm 2020:
Chrome 66 | Edge 79 | Firefox 61 | Safari 12 | Opera 50 |
Apr 2018 | Jan 2020 | Jun 2018 | Sep 2018 | May 2018 |
Cắt chuỗi JavaScriptEnd()
ECMAScript 2019 đã thêm phương thức chuỗi trimEnd()
vào JavaScript.
Phương thức trimEnd()
hoạt động giống như trim()
nhưng chỉ loại bỏ khoảng trắng ở cuối chuỗi.
Chuỗi JavaScript trimEnd()
được hỗ trợ trong tất cả các trình duyệt hiện đại kể từ tháng 1 năm 2020:
Chrome 66 | Edge 79 | Firefox 61 | Safari 12 | Opera 50 |
Apr 2018 | Jan 2020 | Jun 2018 | Sep 2018 | May 2018 |
Đệm chuỗi JavaScript
ECMAScript 2017 đã thêm hai phương thức chuỗi mới vào JavaScript: padStart()
và padEnd()
để hỗ trợ đệm ở đầu và cuối chuỗi.
Chuỗi JavaScript padStart()
Phương thức padStart()
đệm một chuỗi ngay từ đầu.
Nó đệm một chuỗi bằng một chuỗi khác (nhiều lần) cho đến khi nó đạt đến độ dài nhất định.
Ví dụ
Thêm một chuỗi bằng "0" cho đến khi nó đạt độ dài 4:
let text = "5";
let padded = text.padStart(4,"0");
Hãy tự mình thử »Thêm một chuỗi bằng "x" cho đến khi nó đạt độ dài 4:
let text = "5";
let padded = text.padStart(4,"x");
Hãy tự mình thử »Ghi chú
Phương thức padStart()
là một phương thức chuỗi.
Để đệm một số, trước tiên hãy chuyển đổi số đó thành một chuỗi.
Xem ví dụ dưới đây.
Ví dụ
let numb = 5;
let text = numb.toString();
let padded = text.padStart(4,"0");
Hãy tự mình thử »Hỗ trợ trình duyệt
padStart()
là một tính năng của ECMAScript 2017 .
ES2017 được hỗ trợ trong tất cả các trình duyệt hiện đại kể từ tháng 9 năm 2017:
Chrome 58 | Edge 15 | Firefox 52 | Safari 11 | Opera 45 |
Apr 2017 | Apr 2017 | Mar 2017 | Sep 2017 | May 2017 |
padStart()
không được hỗ trợ trong Internet Explorer.
Chuỗi JavaScript padEnd()
Phương thức padEnd()
đệm một chuỗi từ cuối.
Nó đệm một chuỗi bằng một chuỗi khác (nhiều lần) cho đến khi nó đạt đến độ dài nhất định.
Ví dụ
let text = "5";
let padded = text.padEnd(4,"0");
Hãy tự mình thử »
let text = "5";
let padded = text.padEnd(4,"x");
Hãy tự mình thử »Ghi chú
Phương thức padEnd()
là một phương thức chuỗi.
Để đệm một số, trước tiên hãy chuyển đổi số đó thành một chuỗi.
Xem ví dụ dưới đây.
Hỗ trợ trình duyệt
padEnd()
là một tính năng của ECMAScript 2017 .
ES2017 được hỗ trợ trong tất cả các trình duyệt hiện đại kể từ tháng 9 năm 2017:
Chrome 58 | Edge 15 | Firefox 52 | Safari 11 | Opera 45 |
Apr 2017 | Apr 2017 | Mar 2017 | Sep 2017 | May 2017 |
padEnd()
không được hỗ trợ trong Internet Explorer.
Lặp lại chuỗi JavaScript()
Phương thức repeat()
trả về một chuỗi có một số bản sao của chuỗi.
Phương thức repeat()
trả về một chuỗi mới.
Phương thức repeat()
không thay đổi chuỗi gốc.
Ví dụ
Tạo bản sao của văn bản:
let text = "Hello world!";
let result = text.repeat(2);
Hãy tự mình thử »
let text = "Hello world!";
let result = text.repeat(4);
Hãy tự mình thử »Cú pháp
string .repeat( count )
Thông số
Parameter | Description |
count | Required. The number of copies wanted. |
Giá trị trả về
Kiểu | Sự miêu tả |
Sợi dây | Một chuỗi mới chứa các bản sao. |
Hỗ trợ trình duyệt
repeat()
là một tính năng ES6 (JavaScript 2015).
ES6 được hỗ trợ đầy đủ trong tất cả các trình duyệt hiện đại kể từ tháng 6 năm 2017:
Chrome 51 | Edge 15 | Firefox 54 | Safari 10 | Opera 38 |
May 2016 | Apr 2017 | Jun 2017 | Sep 2016 | Jun 2016 |
repeat()
không được hỗ trợ trong Internet Explorer.
Thay thế nội dung chuỗi
Phương thức replace()
thay thế một giá trị được chỉ định bằng một giá trị khác trong chuỗi:
Ví dụ
let text = "Please visit Microsoft!";
let newText = text.replace("Microsoft", "W3Schools");
Hãy tự mình thử »Ghi chú
Phương thức replace()
không thay đổi chuỗi mà nó được gọi.
Phương thức replace()
trả về một chuỗi mới.
Phương thức replace()
chỉ thay thế kết quả khớp đầu tiên
Nếu bạn muốn thay thế tất cả các kết quả khớp, hãy sử dụng biểu thức chính quy với bộ cờ /g. Xem ví dụ dưới đây.
Theo mặc định, phương thức replace()
chỉ thay thế kết quả khớp đầu tiên :
Ví dụ
let text = "Please visit Microsoft and Microsoft!";
let newText = text.replace("Microsoft", "W3Schools");
Theo mặc định, phương thức replace()
phân biệt chữ hoa chữ thường. Viết MICROSOFT (chữ hoa) sẽ không được:
Ví dụ
let text = "Please visit Microsoft!";
let newText = text.replace("MICROSOFT", "W3Schools");
Để thay thế trường hợp không phân biệt chữ hoa chữ thường, hãy sử dụng biểu thức chính quy bằng cờ /i
(không phân biệt chữ hoa chữ thường):
Ví dụ
let text = "Please visit Microsoft!";
let newText = text.replace(/MICROSOFT/i, "W3Schools");
Ghi chú
Biểu thức chính quy được viết không có dấu ngoặc kép.
Để thay thế tất cả các kết quả khớp, hãy sử dụng biểu thức chính quy có cờ /g
(kết quả khớp toàn cục):
Ví dụ
let text = "Please visit Microsoft and Microsoft!";
let newText = text.replace(/Microsoft/g, "W3Schools");
Ghi chú
Bạn sẽ tìm hiểu thêm nhiều điều về biểu thức chính quy trong chương Biểu thức chính quy JavaScript .
Chuỗi JavaScript Thay thếTất cả()
Vào năm 2021, JavaScript đã giới thiệu phương thức chuỗi replaceAll()
:
Ví dụ
text = text.replaceAll("Cats","Dogs");
text = text.replaceAll("cats","dogs");
Hãy tự mình thử » Phương thức replaceAll()
cho phép bạn chỉ định một biểu thức chính quy thay vì một chuỗi cần thay thế.
Nếu tham số là một biểu thức chính quy thì cờ chung (g) phải được đặt, nếu không thì lỗi TypeError sẽ được đưa ra.
Ví dụ
text = text.replaceAll(/Cats/g,"Dogs");
text = text.replaceAll(/cats/g,"dogs");
Hãy tự mình thử »Ghi chú
replaceAll()
là một tính năng ES2021 .
replaceAll()
không hoạt động trong Internet Explorer.
Chuyển đổi một chuỗi thành một mảng
Nếu bạn muốn làm việc với một chuỗi dưới dạng một mảng, bạn có thể chuyển đổi nó thành một mảng.
Tách chuỗi JavaScript()
Một chuỗi có thể được chuyển đổi thành một mảng bằng phương thức split()
:
Ví dụ
text.split(",") // Split on commas
text.split(" ") // Split on spaces
text.split("|") // Split on pipe
Hãy tự mình thử »Nếu bỏ qua dấu phân cách, mảng trả về sẽ chứa toàn bộ chuỗi trong chỉ mục [0].
Nếu dấu phân cách là "", mảng trả về sẽ là một mảng gồm các ký tự đơn:
Tham chiếu chuỗi hoàn chỉnh
Để có tài liệu tham khảo Chuỗi đầy đủ, hãy truy cập:
Tham chiếu chuỗi JavaScript hoàn chỉnh .
Tham chiếu chứa các mô tả và ví dụ về tất cả các thuộc tính và phương thức chuỗi.