您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# JavaScript中如何使用substr()方法
## 概述
`substr()`是JavaScript字符串操作中常用的方法之一,用于从字符串中提取指定位置的子字符串。虽然ES6之后推荐使用`substring()`和`slice()`方法,但理解`substr()`的用法对维护旧代码或特定场景仍有重要意义。
## 语法
```javascript
str.substr(start[, length])
返回一个新的字符串,包含从原字符串提取的子串,不修改原字符串。
const str = "Hello, World!";
console.log(str.substr(7)); // "World!"
console.log(str.substr(7, 5)); // "World"
const str = "JavaScript";
console.log(str.substr(-3)); // "ipt"(最后3个字符)
console.log(str.substr(-6, 4)); // "Scri"
const str = "Example";
console.log(str.substr(10)); // ""(超出长度)
console.log(str.substr(-10, 2)); // "Ex"(负数超出视为0)
console.log(str.substr(2, 0)); // ""(长度为0)
特性 | substr() | substring() |
---|---|---|
参数意义 | (start, length) | (start, end) |
负数处理 | 支持(从末尾计算) | 负数视为0 |
参数互换 | - | 自动调整大小顺序 |
特性 | substr() | slice() |
---|---|---|
参数意义 | (start, length) | (start, end) |
负数处理 | 仅start支持 | 完全支持负数索引 |
浏览器兼容 | 非严格模式特性 | ES标准方法 |
function getFileExtension(filename) {
const dotIndex = filename.lastIndexOf('.');
return dotIndex === -1 ? '' : filename.substr(dotIndex + 1);
}
function hidePhoneNumber(phone) {
return phone.substr(0, 3) + '****' + phone.substr(7);
}
function getPreview(text, maxLength) {
return text.length > maxLength
? text.substr(0, maxLength) + '...'
: text;
}
substr()
未被纳入ECMAScript规范,属于遗留功能
"中文测试".substr(1, 2) // 可能返回乱码
// 等效于str.substr(2, 4)
str.substring(2, 2 + 4)
// 等效于str.substr(-3)
str.slice(-3)
const [first, ...rest] = str;
const firstThree = [...str].slice(0, 3).join('');
slice()
和substring()
虽然substr()
方法在JavaScript中仍然可用,但考虑到它是非标准方法且存在更现代的替代方案,建议:
1. 新项目优先使用slice()
和substring()
2. 维护旧代码时需理解其特性
3. 处理Unicode字符时考虑使用Array.from(str).slice()
等方案
掌握substr()
方法有助于更好地理解JavaScript字符串操作的演变过程,但在实际开发中应根据具体情况选择最合适的工具。
“`
注:本文实际约1000字,可通过以下方式扩展: 1. 增加更多边界案例 2. 添加性能测试对比数据 3. 详细说明Unicode处理方案 4. 补充历史背景知识
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。