js实现 substring
实现 substring 的方法
在 JavaScript 中,substring 是字符串对象的一个方法,用于提取字符串中介于两个指定下标之间的字符。以下是几种常见的实现方式和使用场景。
使用原生 substring 方法
JavaScript 字符串原生提供了 substring 方法,语法如下:
str.substring(startIndex, endIndex)
startIndex:必需,指定开始提取的位置(包含该位置的字符)。endIndex:可选,指定结束提取的位置(不包含该位置的字符)。如果省略,则提取到字符串末尾。
示例:
const str = "Hello, World!";
const result = str.substring(0, 5); // 输出 "Hello"
使用 slice 方法
slice 方法与 substring 类似,但支持负数索引(从字符串末尾开始计算):

str.slice(startIndex, endIndex)
示例:
const str = "Hello, World!";
const result = str.slice(0, 5); // 输出 "Hello"
const result2 = str.slice(-6, -1); // 输出 "World"
使用 substr 方法(已废弃)
substr 方法从指定位置开始提取指定长度的字符,语法如下:

str.substr(startIndex, length)
startIndex:必需,开始提取的位置。length:可选,提取的字符数。如果省略,则提取到字符串末尾。
示例:
const str = "Hello, World!";
const result = str.substr(0, 5); // 输出 "Hello"
注意:substr 已废弃,不推荐在新代码中使用。
手动实现 substring
如果需要手动实现 substring 的功能,可以通过循环或数组操作完成:
function customSubstring(str, start, end) {
if (end === undefined) end = str.length;
let result = "";
for (let i = start; i < end && i < str.length; i++) {
result += str[i];
}
return result;
}
const str = "Hello, World!";
const result = customSubstring(str, 0, 5); // 输出 "Hello"
注意事项
substring和slice的主要区别在于对负数的处理:substring会将负数视为 0,而slice会从字符串末尾计算。- 如果
startIndex大于endIndex,substring会自动交换两者的位置,而slice不会。
通过以上方法,可以灵活地实现字符串的子串提取需求。






