js中的slice、substr、substring
(均不改变原来字符串的值)
var str = " 11xieYaoPeng is a employee gender man telephone 134xxxxxxxx address jiangsuProvince suzhouShi tel kunShanShi threeWaterShawTree "
console.log(str.length) //126
一、查找索引
1.从前往后找,结果为所要查找字符串首次出现的位置,
第二个参数为从该位置开始向后查询字符串,
未找到,查询结果为-1
var syi = str.indexOf("man", 10)
console.log("man首次出现的位置", syi) //35
2.从后往前找,索引都是从前往后排序的
var lsy = str.lastIndexOf("man")
console.log("man最后出现的位置", lsy) //35
3.search与indexOf的功能相同,search无法设置从哪一个位置开始查找,
indexOf无法设置更强大的搜索值(正则表达式)
var position = str.search("tel")
console.log("tel", position) //39
二、slice
1.截取字符串在14-16位置的字符串,返回结果包括第一个位置,不包括第二个位置
var str1 = str.slice(14, 16)
console.log("截取的字符串1", str1) //is
2. 若参数只有一个,返回的结果为第二个位置之后所有的字符串,原值不变
var str2 = str.slice(14)
console.log("截取的字符串2", str2)
// is a employee gender man telephone 134xxxxxxxx address jiangsuProvince suzhouShi tel kunShanShi threeWaterShawTree
console.log(str)
3.若没有参数,返回结果为从0截取到最后一个位置
var str3 = str.slice()
console.log("截取的字符串3", str3)
// 11xieYaoPeng is a employee gender man telephone 134xxxxxxxx address jiangsuProvince suzhouShi tel kunShanShi threeWaterShawTree
4. 从后往前截取 (负值不适用于IE8及以前版本)
var str4 = str.slice(-19)
console.log("截取的字符串4", str4)
// threeWaterShawTree
5. 从后往前截取,包括第一个位置的,不包括第二个位置的
var str5 = str.slice(-19,-14)
console.log("截取的字符串5", str5)
// three
三、substr
1.第一个参数代表所要截取的位置,第二个参数代表截取的字符串的长度
var str6 = str.substr(100,10)
console.log("截取的字符串6:",str6)
// kunShanShi
2.截取位置及之后的字符串
var str7 = str.substr(100)
console.log("截取的字符串7:",str7)
// kunShanShi threeWaterShawTree
3.第一个参数为负数,从后往前查询倒数第一百的位置,截取长度为十的字符串
var str8 = str.substr(-100,10)
console.log("截取的字符串8:",str8)
// nder man t
4.因为第二个参数代表截取字符串的长度,所以不能为负值,
若第二个参数为负值,返回结果为空字符串
var str9 = str.substr(100,-10)
console.log("截取的字符串9:",str9 == "")
// true
5.若只有一个参数,且为负值,从后往前检索至倒数第十九的位置,并返回剩余的字符串
var str10 = str.substr(-19)
console.log("截取的字符串10:",str10)
// threeWaterShawTree
四、substring
var string1 = "hahaha xixixi zezeze"
1.截取第二到第七的字符串
var str11 = string1.substring(7,2)
console.log("截取的字符串:",str11)
// haha
2.若第一个参数为负值,则表示从字符串的第一个位置开始截取,截取到第二个参数所在的位置
var str12 = string1.substring(-7,8)
console.log("截取的字符串:",str12)
// hahaha x
3.若只有一个参数,且参数为负值,与没有参数时情况相同,截取整个字符串
var str13 = string1.substring(-7)
console.log("截取的字符串:",str13)
// hahaha xixixi zezeze
var str14 = string1.substring()
console.log("截取的字符串:",str14)
// hahaha xixixi zezeze
5.若两个参数都为负值,即代表从开始位置截取到开始位置,结果为空字符串
var str15 = string1.substring(-1,-2)
console.log("截取的字符串:",str15 === "")
// true
console.log(string1)
// hahaha xixixi zezeze
console.log(str)
// 11xieYaoPeng is a employee gender man telephone 134xxxxxxxx address jiangsuProvince suzhouShi tel kunShanShi threeWaterShawTree