JavaScript 字符串 substring() 方法
JavaScript 是一门广泛应用于前端开发的脚本语言,字符串在 JavaScript 中占据了极其重要的地位。而其中一个非常有用的字符串方法就是 substring()。
什么是 substring() 方法
substring() 方法是 JavaScript 字符串对象都有的方法,它用来截取字符串中的一部分,从而产生一个新的字符串。
substring() 语法
语法为:
string.substring(indexStart, indexEnd)
其中 string 是必选项,代表源字符串;indexStart 和indexEnd 则是可选参数,分别代表待截取子串的起始和结束下标。同时需要注意,substring() 会将 indexStart 和 indexEnd 转换成正整数,若不是,则省略该参数。
substring() 参数说明
indexStart:必需,起始下标,支持负数,若为负数则其绝对值应小于字符串长度,转换为 0。indexEnd:可选,结束下标,支持负数,若省略,则返回源字符串从indexStart开始到字符串末尾的子字符串。若为负数,则应小于字符串长度,且需要大于indexStart参数。
substring() 的返回值
返回从 indexStart 下标开始,到 indexEnd 下标结束的子串,不包括 indexEnd。
let str = "The quick brown fox";
console.log(str.substring(0, 3)); // "The"
console.log(str.substring(4, 9)); // "quick"
console.log(str.substring(16)); // "fox"
console.log(str.substring(-3)); // "The quick brown fo"
console.log(str.substring(4, -2)); // "The quick brow"
其中最后一行代码中的参数 -2 将被转换成 0。
substring() 和 substr() 的区别
substring() 和 substr() 都是截取字符串的方法,但它们使用的参数有所不同。substring() 使用的是起始和结束下标,而 substr() 使用的是起始下标和截取的字符的数量。
例如,对于字符串 'helloworld',截取 'hello' 可以使用以下代码:
console.log('helloworld'.substring(0,5)); // "hello"
console.log('helloworld'.substr(0,5)); // "hello"
但当需要使用起始下标和结束下标在第一个参数为负数时,它们的截取结果则会有所不同。
console.log('helloworld'.substring(-3,5)); // "hello"
console.log('helloworld'.substr(-3,5)); // "worl"
这是由于 substr() 将负数怎么与字符串长度相加从而得到正确的起始下标,而 substring() 则将负数作为 0 来处理。因此在使用时,应根据实际需要选择合适的方法。
结论
substring() 方法是 JavaScript 字符串对象上的一个非常有用的方法,它允许我们在不改变原字符串的情况下,提取字符串的子串。当需要使用起始和结束下标截取字符串时,我们可以优先考虑使用 substring() 方法,并了解其与 substr() 方法的区别,以便选择合适的方法来完成我们的需求。
极客笔记