字符串操作方法总结

1. 查找类方法

  1. indexOf()
stringObject.indexOf(searchvalue,fromindex)

indexOf()用来检索指定的字符串值在字符串中首次出现的位置。它可以接收两个参数,searchvalue表示要查找的字符串;fromindex表示查找的开始位置,省略的话则从开始位置进行检索。

var str = 'abcdeabcde';
console.log(str.indexOf('a'));  // 返回0
console.log(str.indexOf('a', 3));   // 返回5
console.log(str.indexOf('bc')); // 返回1
  1. lastindexOf()
stringObject.lastIndexOf(searchvalue,fromindex)

lastIndexOf()语法与indexOf()类似,它返回的是一个指定的子字符串值最后出现的位置,其检索顺序是从后向前
注意:indexOf()和lastindexOf()如果要检索的字符串值没有出现,则该方法返回 -1。

var str = 'abcdeabcde';
console.log(str.lastIndexOf('a'));  // 返回5
console.log(str.lastIndexOf('a', 3));   // 返回0 从索引第3的位置往前检索
console.log(str.lastIndexOf('bc')); // 返回6
  1. search()
stringObject.search(substr) 
stringObject.search(regexp)

search()方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。它会返回第一个匹配的子字符串的起始位置
注意:如果没有匹配的,则返回-1

var str = 'abcDEF';
console.log(str.search('c'));   //返回2
console.log(str.search('d'));   //返回-1
console.log(str.search(/d/i));  //返回3
  1. match()
stringObject.match(substr) 
stringObject.match(regexp)

match()方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
如果参数中传入的是子字符串或是没有进行全局匹配 的正则表达式,那么match()方法会从开始位置执行一次匹配,如果没有匹配到结果,则返回null。否则则会返回一个数组,该数组的第0个元素存放的 是匹配文本,除此之外,返回的数组还含有两个对象属性index和input,分别表示匹配文本的起始字符索引和stringObject 的引用(即原字符串)。

var str = '1a2b3c4d5e';
console.log(str.match('h'));    //返回null
console.log(str.match('b'));    //返回["b", index: 3, input: "1a2b3c4d5e"]
console.log(str.match(/b/));    //返回["b", index: 3, input: "1a2b3c4d5e"]

如果参数传入的是具有全局匹配的正则表达式,那么match()从开始位置进行多次匹配,直到最后。如果没有匹配到结果,则返回null。否则则会返回一个数组,数组中存放所有符合要求的子字符串,并且没有index和input属性。

var str = '1a2b3c4d5e';
console.log(str.match(/h/g));   //返回null
console.log(str.match(/\d/g));  //返回["1", "2", "3", "4", "5"]

2. 截取类方法

  1. substring()
stringObject.substring(start,end)
var str = 'abcdefg';
console.log(str.substring(1, 4));   //返回bcd
console.log(str.substring(1));  //返回bcdefg
console.log(str.substring(-1)); //返回abcdefg,传入负值时会视为0
  1. slice()
    stringObject.slice(start,end)
var str = 'abcdefg';
console.log(str.slice(1, 4));   //返回bcd
console.log(str.slice(-3, -1)); //返回ef
console.log(str.slice(1, -1));  //返回bcdef
console.log(str.slice(-1, -3)); //返回空字符串,若传入的参数有问题,则返回空
  1. substr()
stringObject.substr(start,length)

substr()方法可在字符串中抽取从start下标开始的指定数目的字符。其返回值为一个字符串,包含从 stringObject的start(包括start所指的字符)处开始的length个字符。如果没有指定 length,那么返回的字符串包含从start到stringObject的结尾的字符。另外如果start为负数,则表示从字符串尾部开始算起。

var str = 'abcdefg';
console.log(str.substr(1, 3))   //返回bcd
console.log(str.substr(2))  //返回cdefg
console.log(str.substr(-2, 4))  //返回fg,目标长度较大的话,以实际截取的长度为准

3. 其他方法

  1. replace()
    replace()方法用来进行字符串替换操作,它可以接收两个参数,前者为被替换的子字符串(可以是正则),后者为用来替换的文本
var str = 'abcdeabcde';
console.log(str.replace('a', 'A'));
console.log(str.replace(/a/, 'A'));
  1. split()
    split()方法用于把一个字符串分割成字符串数组。第一个参数separator表示分割位置(参考符),第二个参数howmany表示返回数组的允许最大长度(一般情况下不设置)。
var str = 'a|b|c|d|e';
console.log(str.split('|'));    //返回["a", "b", "c", "d", "e"]
console.log(str.split('|', 3)); //返回["a", "b", "c"]
console.log(str.split('')); //返回["a", "|", "b", "|", "c", "|", "d", "|", "e"]
  1. toLowerCase()和toUpperCase()
stringObject.toLowerCase() 
stringObject.toUpperCase()

toLowerCase()方法可以把字符串中的大写字母转换为小写,toUpperCase()方法可以把字符串中的小写字母转换为大写。

猜你喜欢

转载自blog.csdn.net/lj940628/article/details/84976902