JS字符串截取指定字符前后内容的实现方法

作者:闭包旅人

时间:2026-10-31

浏览:430

本文介绍在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字符串截取内容,请搜索本站过往文章或继续浏览下方相关文章。感谢大家的支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章