JavaScript常用截取字符串的三种方式用法区别实例解析
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
在JavaScript中,截取字符串是常见的操作,有三种主要的方法:`substring()`、`slice()` 和 `substr()`。这些方法都是用来从一个字符串中提取一部分并返回新的字符串,但它们在处理参数和负值时有不同的行为。下面我们将详细介绍这三个方法,并通过实例来解析它们的区别。 1. `substring(start, stop)` - `substring()` 方法提取字符串中介于两个指定下标之间的字符。 - `start` 参数是必需的,表示子串的第一个字符在原始字符串中的位置,从0开始计数。 - `stop` 参数是可选的,表示子串的最后一个字符后面的位置,如果省略,则子串一直延伸到字符串的末尾。 - `substring()` 不接受负值作为参数。如果传入负数,会被视为0。 示例: ```javascript var str = "hello world"; console.log(str.substring(3)); // 输出 "lo world" ``` 2. `slice(start, end)` - `slice()` 方法与 `substring()` 类似,也是用于提取字符串的一部分。 - `start` 参数同 `substring()`,表示子串的起始位置。 - `end` 参数表示紧接着要抽取的片段的结尾的下标,不包含在结果中。如果省略,则提取到字符串末尾。 - `slice()` 允许负值作为参数,-1 表示字符串的最后一个字符,-2 表示倒数第二个字符,以此类推。 示例: ```javascript console.log(str.slice(3)); // 输出 "lo world" console.log(str.slice(-3)); // 输出 "rld" ``` 3. `substr(start, length)` - `substr()` 方法从指定位置开始提取指定长度的字符。 - `start` 参数同样是必需的,表示子串开始的位置,可以是负数,表示从字符串末尾开始。 - `length` 参数是可选的,表示要提取的字符数。如果省略,则提取从 `start` 到字符串末尾的字符。 - 当 `start` 为负数时,`substr()` 会将其转换为从字符串末尾开始的位置,`length` 也会有所不同,负数第二个参数会被当作0处理。 示例: ```javascript console.log(str.substr(3)); // 输出 "lo world" console.log(str.substr(-3)); // 输出 "rld" console.log(str.substr(3, 7)); // 输出 "lo worl" console.log(str.substr(3, -4)); // 输出 ""(空字符串) ``` 总结: - `substring()` 和 `slice()` 在只有一个参数时,都会从指定位置开始返回剩余字符串。如果有两个参数,两者都会从第一个参数位置开始截取,直到但不包括第二个参数位置。 - `substr()` 在只有一个参数时,从指定位置开始返回剩余字符串。如果有两个参数,它会返回从指定位置开始的指定长度的字符。 - 当参数为负值时,`slice()` 将负值转换为从字符串末尾开始的位置,`substr()` 的第一个负参数会加上字符串长度,第二个负参数会被转换为0,而 `substring()` 会将所有负值都转换为0。 了解这些方法的不同之处对于编写高效且精确的JavaScript代码至关重要。在实际开发中,根据需求选择合适的方法可以避免不必要的错误和性能问题。
- 粉丝: 7
- 资源: 971
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于ArcEngine的GIS数据处理系统.zip
- (源码)基于JavaFX和MySQL的医院挂号管理系统.zip
- (源码)基于IdentityServer4和Finbuckle.MultiTenant的多租户身份认证系统.zip
- (源码)基于Spring Boot和Vue3+ElementPlus的后台管理系统.zip
- (源码)基于C++和Qt框架的dearoot配置管理系统.zip
- (源码)基于 .NET 和 EasyHook 的虚拟文件系统.zip
- (源码)基于Python的金融文档智能分析系统.zip
- (源码)基于Java的医药管理系统.zip
- (源码)基于Java和MySQL的学生信息管理系统.zip
- (源码)基于ASP.NET Core的零售供应链管理系统.zip