--- title: String.prototype.substr() slug: Web/JavaScript/Reference/Global_Objects/String/substr translation_of: Web/JavaScript/Reference/Global_Objects/String/substr ---
substr()
trả về những ký tự trong một chuỗi được xác định bởi vị trí ký tự bắt đầu và số lượng ký tự theo sau đó.str.substr(start, [length])
start (bắt đầu)
Vị trí chính xác của ký tự bắt đầu. Nếu là một số âm, nó sẽ được xử lý như sau strLength - start trong đó strLength
là chiều dài của chuỗi. Ví dụ, str.substr(-3)
sẽ được coi như là str.substr(str.length -3)
length (độ dài)
Một chuỗi mới là phần đã lấy ra từ chuỗi ban đầu. Nếu length là 0 hoặc là một số âm thì trả về một chuỗi rỗng.
start
là chỉ số của ký tự. Chỉ số của ký tự đầu tiên là 0, và chỉ số của ký tự cuối cùng thì nhỏ hơn độ dài của chuỗi là 1. substr()
bắt đầu lấy các ký tự tại start
và thu thập length
các ký tự( trừ khi nó chấm tới cuối chuỗi trước, trong trường hợp này nó sẽ trả về ít hơn).
Nếu start
là số dương và lớn hơn hoặc bằng chiều dài của chuỗi, substr()
trả về một chuỗi rỗng.
Nếu start
là số âm, substr()
coi nó như chỉ là chỉ số của ký tự tính từ cuối chuỗi; chỉ số của ký tự cuối cùng là -1. Nếu start
là số âm và abs(start)
lớn hơn chiều dài của chuỗi,substr()
coi 0 như là chỉ số bắt đầu.
Chú ý: Việc xử lý giá trị âm của tham số start
như ở trên không được Microsoft JScript hỗ trợ.
Nếu length
là 0 hoặc âm, substr()
trả về một mảng rỗng. Nếu length
bị bỏ sót, substr()
lấy các ký tự cho tới cuối chuỗi.
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): '
Microsoft's JScript không hỗ trợ các giá trị âm cho chi số bắt đầu. Nếu bạn mong muốn sử dụng tính năng này, bạn có thể sử dụng đoạn code dưới đây để xử lý bug này:
// 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); }
Quy cách | Tình trạng | Ý kiến |
---|---|---|
{{SpecName('ES3')}} | {{Spec2('ES3')}} | Da dinh nghia trong phu luc B bang Tuong thich (bo sung thong tin). Ap dung trong JavaScript 1.0 |
{{SpecName('ES5.1', '#sec-B.2.3', 'String.prototype.substr')}} | {{Spec2('ES5.1')}} | Da dinh nghia trong phu luc B bang Tuong thich (bo sung thong tin). |
{{SpecName('ES6', '#sec-string.prototype.substr', 'String.prototype.substr')}} | {{Spec2('ES6')}} | Da dinh nghia trong phu luc B (quy chuan) cho cac tinh nang bo sung cua ECMAScript doi voi cac trinh duyet Web |
{{SpecName('ESDraft', '#sec-string.prototype.substr', 'String.prototype.substr')}} | {{Spec2('ESDraft')}} | Da dinh nghia trong phu luc B (quy chuan) cho cac tinh nang bo sung cua ECMAScript doi voi cac trinh duyet Web |
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
{{Compat("javascript.builtins.String.substr")}}