Bản dịch này chưa hoàn thành. Xin hãy giúp dịch bài viết này từ tiếng Anh.

Phuong thuc substr()tra ve nhung ky tu trong mot chuoi duoc xac dinh boi vi tri ky tu bat dau va so luong ky tu theo sau.

Cu phap

str.substr(start, [length])

Cac tham so

start (bat dau)
Vi tri chinh xac cua ky tu bat dau. Neu la mot so am, no se duoc xu ly nhu sau strLength - start trong do strLengthla chieu dai cua chuoi. Vi du, str.substr(-3) se duoc coi nhu la str.substr(str.length -3)
length (do dai)
So luong ky tu muon lay ra. Neu tham so nay la undefined, tat ca cac ky tu tu vi tri bat dau toi ket thuc cua chuoi se duoc lay.

Gia tri tra ve

Mot chuoi moi la phan da lay ra tu choi ban dau. Neu length la 0 hoac la mot so am thi tra ve mot chuoi rong.

Mo ta

start la chi so cua ky tu. Chi so cua ky tu dau tien la 0, va chi so cua ky tu cuoi cung thi nho hon do dai cua chuoi la 1. substr() bat dau lay cac ky tu tai start va thu thap length cac ky tu ( tru khi no cham toi cuoi chuoi truoc, trong truong hop nay no se tra ve it hon).

Neu start la so duong va lon hon hoac bang chieu dai cua chuoi, substr() tra ve mot chuoi rong.

Neu start la so am, substr() coi no nhu la chi so cua ky tu tinh tu cuoi chuoi;  chi so cua ky tu cuoi cung la -1. Neu start la so am va abs(start) lon hon chieu dai cua chuoi,substr() coi 0 nhu la chi so bat dau.  Chu y: Viec xu ly gia tri am cua tham so start nhu o tren khong duoc Microsoft JScript ho tro.

Neu length la 0 hoac am, substr() tra ve mot mang rong. Neu length bi bo sot, substr() lay cac ky tu cho toi cuoi cuoi.

Vi du

Su dung substr()

var str = 'abcdefghij';

console.log('(1, 2): '   + str.substr(1, 2));   // '(1, 2): bc'
console.log('(-3, 2): '  + str.substr(-3, 2));  // '(-3, 2): hi'
console.log('(-3): '     + str.substr(-3));     // '(-3): hij'
console.log('(1): '      + str.substr(1));      // '(1): bcdefghij'
console.log('(-20, 2): ' + str.substr(-20, 2)); // '(-20, 2): ab'
console.log('(20, 2): '  + str.substr(20, 2));  // '(20, 2): '

Polyfill

Microsoft's JScript khong ho tro cac gia tri am cho chi so bat dau. Neu ban mong muon su dung duoc tinh nang nay, ban co the su dung doan code duoi day de xu ly bug nay: 

// only run when the substr() function is broken
if ('ab'.substr(-1) != 'b') {
  /**
   *  Get the substring of a string
   *  @param  {integer}  start   where to start the substring
   *  @param  {integer}  length  how many characters to return
   *  @return {string}
   */
  String.prototype.substr = function(substr) {
    return function(start, length) {
      // call the original method
      return substr.call(this,
      	// did we get a negative start, calculate how much it is from the beginning of the string
        // adjust the start parameter for negative value
        start < 0 ? this.length + start : start,
        length)
    }
  }(String.prototype.substr);
}

Cac quy cach

Quy cach Tinh trang Y kien
ECMAScript 3rd Edition (ECMA-262) Standard Da dinh nghia trong phu luc B bang Tuong thich (bo sung thong tin). Ap dung trong JavaScript 1.0
ECMAScript 5.1 (ECMA-262)
The definition of 'String.prototype.substr' in that specification.
Standard Da dinh nghia trong phu luc B bang Tuong thich (bo sung thong tin). 
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'String.prototype.substr' in that specification.
Standard Da dinh nghia trong phu luc B (quy chuan) cho cac tinh nang bo sung cua ECMAScript doi voi cac trinh duyet Web
ECMAScript Latest Draft (ECMA-262)
The definition of 'String.prototype.substr' in that specification.
Living Standard Da dinh nghia trong phu luc B (quy chuan) cho cac tinh nang bo sung cua ECMAScript doi voi cac trinh duyet Web

Tuong thich voi trinh duyet

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support Yes Yes Yes Yes Yes Yes
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic support Yes Yes Yes Yes Yes Yes Yes

Tuong tu

Document Tags and Contributors

 Những người đóng góp cho trang này: tthoa
 Cập nhật lần cuối bởi: tthoa,