Get to know MDN better
此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
已弃用: 不再推荐使用该特性。虽然一些浏览器仍然支持它,但也许已从相关的 web 标准中移除,也许正准备移除或出于兼容性而保留。请尽量不要使用该特性,并更新现有的代码;参见本页面底部的兼容性表格以指导你作出决定。请注意,该特性随时可能无法正常工作。
String 值的 substr() 方法返回该字符串的一部分,从指定的索引开始,然后扩展到给定数量的字符。
备注:substr() 不属于 ECMAScript 主要规范——它在附件 B: Web 浏览器的附加 ECMAScript 功能中定义,这是非浏览器运行时的可选标准。因此,建议人们使用标准的 String.prototype.substring() 和 String.prototype.slice() 方法,以便使他们的代码能够更好地、最大程度地跨平台。String.prototype.substring() 页面对这三种方法进行了一些比较。
返回子字符串中要包含的第一个字符的索引。
length 可选要提取的字符数。
一个包含给定字符串指定部分的新字符串。
字符串的 substr() 方法从字符串中提取 length 字符,从 start 索引开始计数。
尽管我们建议你避免使用 substr(),但是没有简单的方法可以将遗留代码中的 substr() 迁移到 slice() 或 substring(),而无需为 substr() 编写一个 polyfill。例如,当 str = "01234", a = 1, l = -2 时,str.substr(a, l)、str.slice(a, a + l) 和 str.substring(a, a + l) 都有不同的结果——substr() 返回空字符串,slice() 返回 "123",而 substring() 返回 "0"。实际的重构路径取决于对 a 和 l 范围的了解。
| ECMAScript® 2027 Language Specification # sec-string.prototype.substr |
启用 JavaScript 以查看此浏览器兼容性表。