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()
方法的区别,以便选择合适的方法来完成我们的需求。