JavaScript 实现 substring 的三种常见方案
作者:纸飞机时间:2026-10-29 16:34:13浏览:308
本文介绍了在 JavaScript 中手动实现 substring 功能的三种不同方案。第一种利用 charAt 逐个提取字符;第二种将字符串转为数组后使用 slice 截取;第三种通过移除首尾多余部分来保留中间内容。文章提供了完整的代码示例及测试用例,帮助开发者理解不同实现方式的逻辑与适用场景。
JavaScript 实现 substring 的三种常见方案
近期遇到一道编程题:“如何利用 JavaScript 实现 string 的 substring 方法?”基于此,我总结了以下三种可行的实现思路: 第一种方案:通过 charAt 逐个提取所需字符:
String.prototype.mysubstring=function(beginIndex,endIndex){
var str=this,
newArr=[];
if(!endIndex){
endIndex=str.length;
}
for(var i=beginIndex;i<endIndex;i++){
newArr.push(str.charAt(i));
}
return newArr.join("");
}
//test
"Hello world!".mysubstring(3);//"lo world!"
"Hello world!".mysubstring(3,7);//"lo w"
第二种方案:将字符串转换为数组,再截取指定部分:
String.prototype.mysubstring=function(beginIndex,endIndex){
var str=this,
strArr=str.split("");
if(!endIndex){
endIndex=str.length;
}
return strArr.slice(beginIndex,endIndex).join("");
}
//test
console.log("Hello world!".mysubstring(3));//"lo world!"
console.log("Hello world!".mysubstring(3,7));//"lo w"
第三种方案:提取首尾多余部分,利用 replace 将其替换为空字符串。该方法适用于 beginIndex 较小且字符串长度减去 endIndex 也较小的情况:
String.prototype.mysubstring=function(beginIndex,endIndex){
var str=this,
beginArr=[],
endArr=[];
if(!endIndex){
endIndex=str.length;
}
for(var i=0;i<beginIndex;i++){
beginArr.push(str.charAt(i));
}
for(var i=endIndex;i<str.length;i++){
endArr.push(str.charAt(i));
}
return str.replace(beginArr.join(""),"").replace(endArr.join(""),"");
}
//test
console.log("Hello world!".mysubstring(3));//"lo world!"
console.log("Hello world!".mysubstring(3,7));//"lo w"
以上三种 JavaScript 实现 string 的 substring 方法供各位参考。大家可以尝试运行并比较哪种方式更符合实际需求。希望本文的内容能对大家的学习有所帮助。
作者最新文章
JS动态构建复杂嵌套JSON对象的方法
2026-11-05 15:41:52
JS负数取余为什么是负数?详解余数与模运算区别
2026-11-05 13:34:41
JS 解压出现乱码或报错怎么解决?
2026-11-05 12:32:38
JS 中 startsWith、indexOf 与正则判断字符串前缀的对比
2026-11-04 22:19:43
JS解析Excel后怎么将数据转换为JSON格式
2026-11-04 20:58:28
