JS字符串截取指定字符前后内容的实现方法
本文介绍在JavaScript中如何截取指定字符前后的字符串。通过substring与indexOf组合,可获取首个或指定位置字符的前后内容;使用split方法可将字符串分割为数组。针对特殊字符需添加转义处理,确保分割准确。
单个符号截取示例:
let str = 'hello, how are you doing? username!'
// 截取 ? 前面的字符串:
let before1 = str.substring(0,str.lastIndexOf("?")) // 不包含 ?
console.log(before1,'before1---------------'); // hello, how are you doing
let before2 = str.substring(0,str.lastIndexOf("?") + 1) // 包含 ?
console.log(before2,'before2---------------'); // hello, how are you doing?
// 截取 ? 后面的字符串:
let after1 = str.substring(str.lastIndexOf("?") + 1) // 不包含 ?
console.log(after1,'after1-----------------'); // username!
let after2 = str.substring(str.lastIndexOf("?")) // 包含 ?
console.log(after2,'after2-----------------'); // ? username!
多个相同符号的截取方式:
let str = 'hello? how are you doing? username!'
// 截取第一个 ? 前面的字符串
let index1 = str.indexOf("?")
let string1 = str.substring(0, index1); // 不包含 ?
console.log(string1,'string1------') // hello
let string11 = str.substring(0, index1 + 1); // 包含 ?
console.log(string11,'string11------') // hello?
// 截取第一个 ? 后面的字符串
let index2 = str.indexOf("?")
let string2 = str.substring(index2 + 1, str.length); // 不包含 ?
console.log(string2,'string2------') // how are you doing? username!
let string22 = str.substring(index2, str.length); // 包含 ?
console.log(string22,'string22------') // ? how are you doing? username!
//截取最后一个 ? 前面的字符串
let index3 = str.lastIndexOf("?")
let string3 = str.substring(0, index3); // 不包含 ?
console.log(string3,'string3---------') // hello? how are you doing
let string33 = str.substring(0, index3 + 1); // 包含 ?
console.log(string33,'string33---------') // hello? how are you doing?
//截取最后一个 ? 后面的字符串
let index4 = str.lastIndexOf("?")
let string4 = str.substring(index4 + 1, str.length); // 不包含 ?
console.log(string4,'string4----------') // username!
let string44 = str.substring(index4, str.length); // 包含 ?
console.log(string44,'string44----------') // ? username!更多实用实例:
(1)提取第一个"_"之后的所有字符,示例如下:
String a = "abcd_efgh_ijklmn_";
int index = a.indexOf("_");//获取第一个"_"的位置
String after1 = a.substring(index + 1);
System.out.println("第一个_后面字符串为:" + after1);
运行结果如下:
第一个_之后的字符串为:efgh_ijklmn_
(2)提取第一个"_"之前的所有字符,示例如下:
String a = "abcd_efgh_ijklmn_";
int index = a.indexOf("_");//获取第一个"_"的位置
String before1 = a.substring(0,index);
System.out.println("第一个_前面字符串为:" + before1);
运行结果如下:
第一个_之前的字符串为:abcd
(3)提取第二个"_"之后的所有字符,示例如下:
String a = "abcd_efgh_ijklmn_";
String after2 = a.substring(a.indexOf("_",a.indexOf("_") + 1) + 1);
System.out.println("第二个_后面字符串为:" + after2);
运行结果如下:
第二个_之后的字符串为:ijklmn_
(4)提取第二个"_"之前的所有字符,示例如下:
String a = "abcd_efgh_ijklmn_";
String before2 = a.substring(0,a.indexOf("_",a.indexOf("_") + 1));
System.out.println("第二个_前面字符串为:" + before2);
运行结果如下:
第二个_之前的字符串为:abcd_efgh
获取第三个_前后的字符可参照(3)和(4)的方法进行截取。(5)利用"_"将字符串分割为数组,示例如下:
String a = "abcd_efgh_ijklmn_";
String[] x = a.split("_");
System.out.print("分割后的字符为:");
for(int i = 0;i<x.length;i++){
System.out.print(" " + x[i]);
}
运行结果如下:
分割后的字符为: abcd efgh ijklmn
若字符串格式不同,则需采用其他截取方法:
String b = "110.120.130.140.150";
String[] o = b.split("\\.");
System.out.print("分割后字符为:");
for(int i = 0;i<o.length;i++){
System.out.print(" " + o[i]);
}
需添加转义字符,运行结果如下:
分割后的字符为: 110 120 130 140 150
在(5)的方法中,若字符串为abcd_efgh_ijklmn_,添加转义字符同样可以实现分割。
总结
至此,关于JavaScript字符串截取指定字符前后内容的介绍已结束。如需了解更多相关JS字符串截取内容,请搜索本站过往文章或继续浏览下方相关文章。感谢大家的支持!
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
p5.js 中 setup() 和 draw() 函数的执行机制详解
2026-11-05 12:32:38
