JavaScript原生对象之String对象的属性和方法详解
length
length属性可返回字符串中的字符数目。
length是根据字符串的UTF-16编码来获取长度的,空字符串长度为0。length不可修改。
charAt()
charAt()方法可返回指定位置的字符。注意,JavaScript并没有一种有别于字符串类型的字符数据类型,所以返回的字符是长度为1的字符串。
stringObject.charAt(index)
参数index是必需的。表示字符串中某个位置的数字,即字符在字符串中的下标。字符串中第一个字符的下标是0。如果参数index不在0与string.length之间,该方法将返回一个空字符串。
注意:charAt()方法对于一些非BMP(Basic-Multilingual-Plane)字符支持会有问题,参考:MDN
charCodeAt()
charCodeAt()方法可返回指定位置的字符的Unicode编码。这个返回值是0–65535之间的整数。
方法charCodeAt()与charAt()方法执行的操作相似,只不过前者返回的是位于指定位置的字符的编码,而后者返回的是字符子串。
stringObject.charCodeAt(index)
参数index是可选的。表示字符串中某个位置的数字,即字符在字符串中的下标。字符串中第一个字符的下标是0。如果index是负数,或大于等于字符串的长度,则charCodeAt()返回NaN。index为空时默认为0。
Unicode编码的范围是0到1,114,111。前128个Unicode编码和ASCII字符编码匹配。charCodeAt()方法返回的值总是小于65536,因为更高值的字符会成对出现,需要用charCodeAt(i)和charCodeAt(i+1)同时检索。
concat()–不推荐使用
concat()方法用于连接两个或多个字符串。
stringObject.concat(stringX,stringX,…,stringX)
参数stringX是必需的。是将被连接为一个字符串的一个或多个字符串对象。
concat()方法将把它的所有参数转换成字符串,然后按顺序连接到字符串stringObject的尾部,并返回连接后的字符串。请注意,stringObject本身并没有被更改。
注意,强烈建议使用”+”运算符来进行字符串的连接,来替代这个方法,效率也更高,参考:concatvs+vsjoin。
indexOf()
indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置。
stringObject.indexOf(searchvalue,fromindex)
参数searchvalue是必需的,规定需检索的字符串值。参数fromindex是可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是0到stringObject.length–1。如省略该参数,则将从字符串的首字符开始检索。
该方法将从头到尾地检索字符串stringObject,看它是否含有子串searchvalue。开始检索的位置在字符串的fromindex处或字符串的开头(没有指定fromindex时)。如果找到一个searchvalue,则返回searchvalue的第一次出现的位置。stringObject中的字符位置是从0开始的。
注意:indexOf()方法对大小写敏感!如果要检索的字符串值没有出现,则该方法返回-1。
lastIndexOf()
lastIndexOf()方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
lastIndexOf()和indexOf()参数和使用方法一致,只不过是从后向前搜索。
varstr="Helloworldworld!"
console.log(str.indexOf("wo")); //6 console.log(str.indexOf("wo",2)); //6 console.log(str.indexOf("wo",10)); //12 console.log(str.lastIndexOf("wo")); //12 console.log(str.lastIndexOf("wo",2)); //-1 console.log(str.lastIndexOf("wo",10));//6