String.prototype.substr()
概述
substr()
方法返回字符串中从指定位置开始到指定长度的子字符串。
语法
str.substr(start[, length])
参数
start
- 开始提取字符的位置。如果为负值,则被看作
strLength +
start,其中
strLength
为字符串的长度(例如,如果start
为-3,则被看作
strLength-3)。
length
- 可选。提取的字符数。
描述
start
是一个字符的索引。首字符的索引为 0,最后一个字符的索引为 字符串的长度减去1。substr
从 start
位置开始提取字符,提取 length
个字符(或直到字符串的末尾)。
如果 start
为正值,且大于或等于字符串的长度,则 substr
返回一个空字符串。
如果 start
为负值,则 substr
把它作为从字符串末尾开始的一个字符索引。如果 start
为负值且 abs(start)
大于字符串的长度,则 substr
使用 0 作为开始提取的索引。注意负的 start
参数不被 Microsoft JScript 所支持。
如果 length
为 0 或负值,则 substr
返回一个空字符串。如果忽略 length
,则 substr
提取字符,直到字符串末尾。
例子:使用 substr
1 2 3 4 5 6 7 8 | 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 不支持负的 start 索引。如果你想充分利用该方法的功能,则需要使用下面的兼容性代码修复此 bug:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | // 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) { // did we get a negative start, calculate how much it is // from the beginning of the string if (start < 0) start = this .length + start; // call the original function return substr.call( this , start, length); } }(String.prototype.substr); } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· Winform-耗时操作导致界面渲染滞后
· Phi小模型开发教程:C#使用本地模型Phi视觉模型分析图像,实现图片分类、搜索等功能
· 语音处理 开源项目 EchoSharp
· drools 规则引擎和 solon-flow 哪个好?solon-flow 简明教程