String.prototype.substr()
Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.
Phương thức substr() của các giá trị String trả về một phần của chuỗi này, bắt đầu từ chỉ số được chỉ định và kéo dài thêm một số ký tự nhất định.
Note:
substr() không phải là một phần của đặc tả ECMAScript chính — nó được định nghĩa trong Phụ lục B: Các tính năng ECMAScript bổ sung cho trình duyệt Web, vốn là tùy chọn chuẩn hóa cho các runtime không phải trình duyệt. Do đó, người dùng nên dùng các phương thức chuẩn String.prototype.substring() và String.prototype.slice() thay thế để code tương thích tốt nhất với nhiều nền tảng. Trang String.prototype.substring() có so sánh giữa ba phương thức này.
Try it
const str = "Mozilla";
console.log(str.substr(1, 2));
// Expected output: "oz"
console.log(str.substr(2));
// Expected output: "zilla"
Cú pháp
substr(start)
substr(start, length)
Tham số
start-
Chỉ số của ký tự đầu tiên được đưa vào chuỗi con trả về.
lengthOptional-
Số ký tự cần trích xuất.
Giá trị trả về
Một chuỗi mới chứa phần được chỉ định của chuỗi đã cho.
Mô tả
Phương thức substr() của một chuỗi trích xuất length ký tự từ chuỗi, tính từ chỉ số start.
- Nếu
start >= str.length, một chuỗi rỗng được trả về. - Nếu
start < 0, chỉ số bắt đầu đế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(start + str.length, 0). - Nếu
startbị bỏ qua hoặc làundefined, nó được coi là0. - Nếu
lengthbị bỏ qua hoặc làundefined, hoặc nếustart + length >= str.length,substr()trích xuất các ký tự đến hết chuỗi. - Nếu
length < 0, một chuỗi rỗng được trả về. - Với cả
startvàlength,NaNđược coi là0.
Mặc dù bạn được khuyến khích tránh dùng substr(), không có cách đơn giản nào để chuyển đổi substr() sang slice() hay substring() trong code cũ mà không cần về cơ bản viết lại một polyfill cho substr(). Ví dụ, str.substr(a, l), str.slice(a, a + l) và str.substring(a, a + l) đều cho kết quả khác nhau khi str = "01234", a = 1, l = -2 — substr() trả về chuỗi rỗng, slice() trả về "123", còn substring() trả về "0". Con đường tái cấu trúc thực tế phụ thuộc vào kiến thức về phạm vi của a và l.
Ví dụ
>Sử dụng substr()
const string = "Mozilla";
console.log(string.substr(0, 1)); // 'M'
console.log(string.substr(1, 0)); // ''
console.log(string.substr(-1, 1)); // 'a'
console.log(string.substr(1, -1)); // ''
console.log(string.substr(-3)); // 'lla'
console.log(string.substr(1)); // 'ozilla'
console.log(string.substr(-20, 2)); // 'Mo'
console.log(string.substr(20, 2)); // ''
Đặc tả
| Thông số kỹ thuật |
|---|
| ECMAScript® 2027 Language Specification> # sec-string.prototype.substr> |