String.prototype.slice()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Phương thức slice() của các giá trị String trích xuất một phần của chuỗi này và
trả về nó như một chuỗi mới, không thay đổi chuỗi gốc.
Try it
const str = "The quick brown fox jumps over the lazy dog.";
console.log(str.slice(31));
// Expected output: "the lazy dog."
console.log(str.slice(4, 19));
// Expected output: "quick brown fox"
console.log(str.slice(-4));
// Expected output: "dog."
console.log(str.slice(-9, -5));
// Expected output: "lazy"
Cú pháp
slice(indexStart)
slice(indexStart, indexEnd)
Tham số
indexStart-
Chỉ số của ký tự đầu tiên cần đưa vào chuỗi con được trả về.
indexEndOptional-
Chỉ số của ký tự đầu tiên cần loại khỏi chuỗi con được trả về.
Giá trị trả về
Một chuỗi mới chứa phần được trích xuất của chuỗi.
Mô tả
slice() trích xuất văn bản từ một chuỗi và trả về một chuỗi mới.
slice() trích xuất đến nhưng không bao gồm indexEnd. Ví dụ, str.slice(4, 8) trích xuất ký tự thứ năm đến ký tự thứ tám (các ký tự có chỉ số 4, 5, 6, và 7):
indexStart indexEnd
↓ ↓
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| T | h | e | | m | i | r | r | o | r |
m i r r
_______________
↑
Result
- Nếu
indexStart >= str.length, một chuỗi rỗng được trả về. - Nếu
indexStart < 0, chỉ số được đếm từ cuối chuỗi. Cụ thể hơn, trong trường hợp này, chuỗi con bắt đầu tạimax(indexStart + str.length, 0). - Nếu
indexStartbị bỏ qua, làundefined, hoặc không thể chuyển đổi thành số, nó được coi là0. - Nếu
indexEndbị bỏ qua hoặc làundefined, hoặc nếuindexEnd >= str.length,slice()trích xuất đến cuối chuỗi. - Nếu
indexEnd < 0, chỉ số được đếm từ cuối chuỗi. Cụ thể hơn, trong trường hợp này, chuỗi con kết thúc tạimax(indexEnd + str.length, 0). - Nếu
indexEnd <= indexStartsau khi chuẩn hóa các giá trị âm (tức làindexEndđại diện cho một ký tự đứng trướcindexStart), một chuỗi rỗng được trả về.
Ví dụ
>Sử dụng slice() để tạo một chuỗi mới
Ví dụ sau sử dụng slice() để tạo một chuỗi mới.
const str1 = "The morning is upon us."; // Độ dài của str1 là 23.
const str2 = str1.slice(1, 8);
const str3 = str1.slice(4, -2);
const str4 = str1.slice(12);
const str5 = str1.slice(30);
console.log(str2); // he morn
console.log(str3); // morning is upon u
console.log(str4); // is upon us.
console.log(str5); // ""
Sử dụng slice() với chỉ số âm
Ví dụ sau sử dụng slice() với các chỉ số âm.
const str = "The morning is upon us.";
str.slice(-3); // 'us.'
str.slice(-3, -1); // 'us'
str.slice(0, -1); // 'The morning is upon us'
str.slice(4, -1); // 'morning is upon us'
Ví dụ này đếm ngược từ cuối chuỗi 11 bước để tìm chỉ số bắt đầu và đếm xuôi từ đầu chuỗi 16 bước để tìm chỉ số kết thúc.
console.log(str.slice(-11, 16)); // "is u"
Ở đây nó đếm xuôi từ đầu 11 bước để tìm chỉ số bắt đầu và đếm ngược từ cuối 7 bước để tìm chỉ số kết thúc.
console.log(str.slice(11, -7)); // " is u"
Các đối số này đếm ngược từ cuối 5 bước để tìm chỉ số bắt đầu và đếm ngược từ cuối 1 bước để tìm chỉ số kết thúc.
console.log(str.slice(-5, -1)); // "n us"
Thông số kỹ thuật
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-string.prototype.slice> |