常用字符串方法

224 阅读4分钟

charAt()

charAt()  方法返回字符串中指定下标位置的字符,下标从0开始。
语法:str.charAt(index)

index(可选): 一个介于 0 和字符串长度减 1 之间的整数。(0~length-1) 如果没有提供索引,charAt() 将使用 0。

 //返回字符串中指定下标位置的字符,下标从0开始
 console.log("abcdef".charAt(0)) ;//a
 console.log("abcdef".charAt(2)) ;//c

indexOf()

indexOf()  返回某个指定的字符串值在字符串中首次出现的下标位置(索引值)。 语法:indexOf(searchString, position)

searchString: 检索的字符串,没有传入,强制设置为 "undefined"。

position(可选):开始检索的位置,值小于0,值为0,值大于或等于str.length,那么结果会直接返回-1

返回值:查找的字符串 searchValue 的第一次出现的索引,如果没有找到,则返回 -1

let str="hello world"; 
console.log(str.indexOf("h"));//0
console.log(str.indexOf("w"));//-1

lastIndexOf()

lastIndexOf()  该方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
语法:str.lastIndexOf(searchValue[, fromIndex])

searchValue: 一个字符串,表示被查找的值。如果searchValue是空字符串,则返回fromIndex

fromIndex(可选):待匹配字符串 searchValue 的开头一位字符从 str 的第 fromIndex 位开始向左回向查找。fromIndex默认值是 0。如果 fromIndex >= str.length ,则会搜索整个字符串。如果 fromIndex < 0 ,则等同于 fromIndex == 0

返回值:返回指定值最后一次出现的索引 (该索引仍是以从左至右 0 开始记数的),如果没找到则返回 -1。

let str="hello world"; 
console.log(str.lastIndexOf("l"));//9
console.log(str.lastIndexOf("k"));//-1

replace()

replace()  方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
语法:str.replace(agr1, arg2)
注意:案例属于简单案例,复杂用法见MDN replace()

agr1:是要被替换的字符串或者正则表达式

agr2:是替换的字符串或者函数。

返回值:一个部分或全部匹配由替代模式所取代的新的字符串。

 "abcdefghijka".replace("a","篮球");//"篮球bcdefghijka"

split()

split()  方法使用指定的分隔符字符串将一个String对象分割成子字符串数组,以一个指定的分割字串来决定每个拆分的位置。
语法:str.split([separator[, limit]])

separator:分割字符串。可以是字符串也可以是正则表达式。

limit:要返回的切片数量

返回值:一个源字符串被切分后的字符串数组

 "gbcdefghijkg".split("g");//["", "bcdef", "hijk", ""]

substring()

substring()  方法返回一个字符串在开始索引到结束索引之间的一个子集,或从开始索引直到字符串的末尾的一个子集。
语法:str.substring(indexStart[, indexEnd])

注意:区间是,左闭右开

indexStart:需要截取的第一个字符的索引,该索引位置的字符作为返回的字符串的首字母。

indexEnd(可选):一个 0 到字符串长度之间的整数,以该数字为索引的字符不包含在截取的字符串内。

返回值:包含给定字符串的指定部分的新字符串。

  • 如果 indexStart 等于 indexEndsubstring 返回一个空字符串。
  • 如果省略 indexEndsubstring 提取字符一直到字符串末尾。
  • 如果任一参数小于 0 或为 NaN,则被当作 0。
  • 如果任一参数大于 stringName.length,则被当作 stringName.length
  • 如果 indexStart 大于 indexEnd,则 substring 的执行效果就像两个参数调换了一样。见下面的例子。
[indexStart, indexEnd)
let str = "wjkwww";
console.log(str.substring(0,3));//wjk
console.log(str.substring(3,0));//wjk

slice()

slice()  方法提取某个字符串的一部分,并返回一个新的字符串,且不会改动原字符串。
语法:str.slice(beginIndex[, endIndex])

beginIndex:从该索引(以 0 为基数)处开始提取原字符串中的字符。如果值为负数,会被当做 strLength + beginIndex 看待,这里的strLength 是字符串的长度。

endIndex(可选):可选。在该索引(以 0 为基数)处结束提取字符串。如果省略该参数,slice() 会一直提取到字符串末尾。

返回值:返回一个从原字符串中提取出来的新字符串。

[beginIndex, endIndex)
let str = "abcdwjkdmjka";
let str1 = str.slice(4,9);  
console.log(str1);//wjkdm

toLowerCase() 和 toUpperCase()

toLowerCase() 方法用于把字符串转换为小写。

语法:str.toUpperCase()

toUpperCase() 方法用于把字符串转换为大写。

语法:str.toLowerCase()

不需要传递参数:将所有字符串中的字母进行大小写的转换

"abcdefg".toUpperCase()
"ABCDEFG"
 
"ABCDEFG".toLowerCase()
"abcdefg"

startsWith()和endWith()

startsWith()  方法用来判断当前字符串是否以另外一个给定的子字符串开头,并根据判断结果返回 true 或 false

语法:str.startsWith(searchString[, position])

  • searchString:要搜索的子字符串。

  • position(可选):在 str 中搜索 searchString 的开始位置,默认值为 0。

endsWith()  方法用来判断当前字符串是否是以另外一个给定的子字符串“结尾”的,根据判断结果返回 true 或 false

语法:str.endsWith(searchString[, length])

  • earchString: 要搜索的子字符串。

  • length(可选):作为 str 的长度。默认值为 str.length

ar str = "To be, or not to be, that is the question.";
console.log(str.startsWith("To be"));// true
console.log(str.endsWith("to be"));// false

repeat()

repeat()  方法返回一个重复了指定参数次数的源字符串的新字符串。
语法:str.repeat(count)

count:介于 0 和 [+Infinity] 之间的整数。表示在新构造的字符串中重复了多少遍原字符串。

"abc".repeat(3.5)    // "abcabcabc" 参数 count 将会被自动转换成整数。

更多内容请看MDN