字符串

 

JavaScript中的 String 类型用于表示文本型的数据. 它是由无符号整数值(16bit)作为元素而组成的集合. 字符串中的每个元素在字符串中占据一个位置. 第一个元素的index值是0, 下一个元素的index值是1, 以此类推. 字符串的长度就是字符串中所含的元素个数.你可以通过String字面值或者String对象两种方式创建一个字符串.

获取长度

可以通过length属性来获取字符串的长度。

例子:

console.log("互道科技2017".length); // 8

连接和分割

连结字符串

连结两个字符串可以使用concat()函数或直接使用+运算符。

例子:

var str="hello ",str1="word ";
str.concat(str1) // "hello word "
str1+str  // "word hello "

分割字符串

分割字符串可以使用split()函数。

例子:

var str="hello";
str.split("") // ["h", "e", "l", "l", "o"]

子串操作

查找子串

在字符串中查找子串可以根据情况分别使用以下几种不同方法:

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

例子:

var str="hello word";
str.indexOf("d"); // 9
str.lastIndexOf("d");// 9
str.search("d") // 9
str.match("d") // ["d"]

截取子串

  • substring(start,end)
    substring()是最常用到的字符串截取方法,它可以接收两个参数(参数不能为负值),分别是要截取的开始位置和结束位置,它将返回一个新的字符串,其内容是从start处到end-1处的所有字符。若结束参数(end)省略,则表示从start位置一直截取到最后。
  • lice(start,end)
    slice()方法与substring()方法非常类似,它传入的两个参数也分别对应着开始位置和结束位置。而区别在于,slice()中的参数可以为负值,如果参数是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符。
  • substr(start,length)
    substr()方法可在字符串中抽取从start下标开始的指定数目的字符。其返回值为一个字符串,包含从 stringObject的start(包括start所指的字符)处开始的length个字符。如果没有指定 length,那么返回的字符串包含从start到stringObject的结尾的字符。另外如果start为负数,则表示从字符串尾部开始算起。

例子:

var str = "0123456789";
str.substring(0);// "0123456789"
str.substring(5);// "56789"
str.substring(10);// ""
str.substring(12);// ""
str.substring(-5);// "0123456789"
str.substring(-10);// "0123456789"
str.substring(-12);// "0123456789"
str.substring(0,5);// "01234"
str.substring(0,10);// "0123456789"
str.substring(0,12);// "0123456789"
str.substring(2,0);// "01"
str.substring(2,2);// ""
str.substring(2,5);// "234"
str.substring(2,12);// "23456789"
str.substring(2,-2);// "01"
str.substring(-1,5);// "01234"
str.substring(-1,-5);// ""

str.substr(0);// "0123456789"
str.substr(5);// "56789"
str.substr(10);// ""
str.substr(12);// ""
str.substr(-5);// "56789"
str.substr(-10);// "0123456789"
str.substr(-12);// "0123456789"
str.substr(0,5);// "01234"
str.substr(0,10);// "0123456789"
str.substr(0,12);// "0123456789"
str.substr(2,0);// ""
str.substr(2,2);// "23"
str.substr(2,5);// "23456"
str.substr(2,12);// "23456789"
str.substr(2,-2);// ""
str.substr(-1,5);// "9"
str.substr(-1,-5);// ""   

替换子串

替换子串可以使用replace()函数。

例子:

var str="hello word";
str.replace("word","hello") // "hello hello"

转换

转换成大写

var str="str";
str.toUpperCase() // "STR"

转换成小写

var str="STR";
str.toLowerCase() // "str"