【JavaScript】字符串方法slice()、substr()、substring()

slice()、substr()和 substring()这三个方法都会返回被操作字符串的一个子字符串,而且也都接受一或两个参数。第一个参数指定子字符串的开始位置,第二个参数(在指定的情况下)表示子字符串到哪里结束。具体来说,slice()和substring()的第二个参数指定的是子字符串最后一个字符后面的位置。而 substr()的第二个参数指定的则是返回的字符个数。如果没有给这些方法传递第二个参数,则将字符串的长度作为结束位置,但不会修改字符串本身的值——它们只是返回一个基本类型的字符串值,对原始字符串没有任何影响。

var stringValue = "hello world"; 
console.log(stringValue.slice(3)); //"lo world" 从位置3截取到最后
console.log(stringValue.substring(3)); //"lo world" 从位置3截取到最后
console.log(stringValue.substr(3)); //"lo world" 从位置3截取到最后
console.log(stringValue.slice(3, 7)); //"lo w" 从位置3截取到位置7(不包括)
console.log(stringValue.substring(3,7)); //"lo w" 从位置3截取到位置7(不包括)
console.log(stringValue.substr(3, 7)); //"lo worl" 从位置3开始截取7位

在传递给这些方法的参数是负值的情况下:slice()方法会将传
入的负值与字符串的长度相加;substr()方法将负的第一个参数加上字符串的长度,而将负的第二个参数转换为 0;substring()方法会把所有负值参数都转换为 0。

var stringValue = "hello world"; 
console.log(stringValue.slice(-3)); //"rld" ==> slice(-3+11)
console.log(stringValue.substring(-3)); //"hello world" ==> substring(0)
console.log(stringValue.substr(-3)); //"rld" ==> substr(-3+11)
console.log(stringValue.slice(3, -4)); //"lo w" ==> slice(3,-4+11)
console.log(stringValue.substring(3, -4)); //"hel" ==> substring(3,0)
console.log(stringValue.substr(3, -4)); //""(空字符串)==> substr(3,0)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容