在javascript的String对象中许多的方法,下面将一一来介绍这些方法,通过这些方法可以直接实现一些功能,免去了重新封装一些函数的麻烦。
在介绍String对象的一些方法前,先介绍一个对象属性(length),用来返回该字符串的长度。具体用法如下:
var a="abc";
console.log(a.length);//返回3
substr、substring
- substr方法返回一个从指定位置开始的指定长度的子字符串。
strObj.substr(start [, length ]);
start:必选项。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。如果start为负数,则start=str.length+start。
length:可选项。在返回的子字符串中应包括的字符个数。如果length省略,则返回的子字符串会一直到该字符串的末尾。如果length为负或0,返回一个空字符串。
var a="abcdefg";
console.log(a.substr(0));//返回abcdefg
console.log(a.substr(0,0));//返回空
console.log(a.substr(0,2));//返回ab
console.log(a.substr(-5,3));//返回cde
- substring返回位于String对象中指定位置的子字符串。
strObj.substring(start,end);
start:指明子字符串的起始位置,该索引从 0 开始起算。如果负数,将被替换为 0。
end:指明子字符串的结束位置,该索引从 0 开始起算。如果end省略,则返回的子字符串会一直到该字符串的末尾。如果负数,将被替换为 0。
该方法还有几点值得注意的地方:
1、方法返回的子串包括 start 处的字符,但不包括 end 处的字符。
2、如果 start 大于 end,那么该方法在提取子串之前会先交换这两个参数。
var a="abcdefg";
console.log(a.substring());//返回abcdefg
console.log(a.substring(0,0));//返回空
console.log(a.substring(0,2));//返回ab
console.log(a.substring(5,2));//返回cde
console.log(a.substring(5,-2));//返回abcde
slice
slice方法返回一个包含 strObj 的指定部分的 String 对象。
strObj.slice(start[,end]);
start:必选项。下标以 0 开始的 strObj 指定部分起始索引。如果为负,则start=str.length+start。
end:可选项。下标以 0 起始的 strObj 的指定部分结束索引。如果end省略,那么 slice 方法将一直复制到 strObj 的结尾。如果为负,则end=str.length+end。
该方法还有几点值得注意的地方:
1、slice 方法一直复制到 end 所指定的字符,但是不包括该字符。
2、如果 start大于end,则不会返回任何内容。
var str="abcdefg";
console.log(str.slice(0));//返回abcdefg
console.log(str.slice(0,5));//返回abcde
console.log(str.slice(5,0));//返回空
console.log(str.slice(-5,-1));//返回cdef
indexOf、lastindexOf
- indexOf
str.indexOf(string,starIndex); 从左往右查找,找到后返回索引,如果没有找到则返回-1。
string:要在 String 对象中查找的子字符串;
starIndex:可选项。该整数值指出在 String 对象内开始查找的索引。如果省略,则从字符串的开始处查找。如果它比最大的字符位置索引还大,则它被当作最大的可能索引。如果为负数=0。
- lastindexOf
str.lastIndexOf(string,starIndex); 从右往左查找,找到后返回索引,如果没有找到则返回-1。
string:要在 String 对象中查找的子字符串;
starIndex:可选项。该整数值指出在 String 对象内开始查找的索引。如果省略,则从字符串的末尾处查找。如果它比最大字符位置索引还大,则它被当作最大的可能索引。如果为负数=0。
var str="acbcdcef";
var a=str.indexOf('c',32);
var b=str.indexOf("c",4);
var c=str.indexOf('c',-2);
document.write(a+"||"+b+"||"+c+"<br>");//-1||5||1
var a=str.lastIndexOf('c',32);
var b=str.lastIndexOf("c",2);
var c=str.lastIndexOf('a',-1);
document.write(a+"||"+b+"||"+c+"<br>");//5||1||-1
split
split将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
strObj.split([ separator [ , limit ] ]);
separator:字符串或正则表达式对象,它标识了分隔字符串时使用的是一个还是多个字符。如果忽略该选项,返回包含整个字符串的单一元素数组。
limit:该值用来限制返回数组中的元素个数。
var str = "AA BB CC DD EE FF";
var arr=str.split(" ",3);
console.log(typeof arr);//object
console.log(arr); //AA,BB,CC
toLowerCase、toUpperCase
- toLowerCase
该方法返回一个字符串,该字符串中的字母被转换成小写。
var str = "ABCabc";
str.toLowerCase(); //abcabc
- toUpperCase
该方法返回一个字符串,该字符串中的所有字母都被转换为大写字母。
var str = "ABCabc";
str.toUpperCase(); //ABCABC
concat
该方法返回字符串值,该值包含了两个或多个提供的字符串的连接。
str.concat([string1[,string2…]])
string1,string2要和所有其他指定的字符串进行连接的String对象或文字。
var str = "ABCDEF";
str.concat("ABCDEF","ABC"); //ABCDEFABCDEFABC