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()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

js
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ề.

length Optional

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ại max(start + str.length, 0).
  • Nếu start bị bỏ qua hoặc là undefined, nó được coi là 0.
  • Nếu length bị bỏ qua hoặc là undefined, hoặc nếu start + 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ả startlength, 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)str.substring(a, a + l) đều cho kết quả khác nhau khi str = "01234", a = 1, l = -2substr() 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 al.

Ví dụ

Sử dụng substr()

js
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ả

Specification
ECMAScript® 2027 Language Specification
# sec-string.prototype.substr

Tương thích trình duyệt

Xem thêm