首先我们先来看一看字符串的方法有哪些?
replace(reg,newStr) 替换字符
reg:正则匹配
newStr:替换匹配的结果
split(reg,length ) 字符串切割 并返回 切割后 的 数组
reg: 从匹配的字符开始切割
length返回的是切割后的数组长度
slice()
slice(start,end) 截取字符串片段 以新的字符串返回被截取的部分
截取从start到end的所有字符(包含起始位置,不包含结束位置)
start和end都可以是非负数,如果是负数,就从字符串的尾部开始算起,例-1就是最后一个
如果未指定end参数,则截取从 start 到原字符串结尾的字符串
substring()
substring(start,end)用于提取字符串中介于两个指定小标 之间 的字符
截取从start到end的所有字符(包含起始位置,不包含结束位置)
start和end必须是正数,如果参数start与end相等,那么该方法返回的就是一个空字符串,如果start比end大,那么该方法在提取字符串之前会先交换这两个参数
如果未指定end参数,则截取从start到原字符串结尾的字符串
substr()
substr(start,length)可在字符串中抽取从start下标开始的指定数目的字符串
截取start开始的length个字符(包含起始位置)
start参数可以是任意整数,如果是负数,则从尾部开始算起,例-1就是最后一个字符。
length是可选的,如果没有,则表示截取开始的位置到字符串的尾部
相同点:
三种方法都可以实现提取字符。
当第二个参数为空的时候,都默认开始到字符串结尾的字符。
不同点:
slice() 如果有第二个参数的时候表示从start开始(包含start)到end结束(不包含end)为止的所有字符,和substring()相似。
substring()不管哪个值都不接受负的参数。
substr()第二个参数不是表示位置,而是表示长度的,这在使用的时候会相对方便一些,可以替换substring()和slice()。
charAt()
stringObject.charAt(index)返回指定索引值对应的字符 。
index必需。表示字符串中某个位置的数字,即字符在字符串中的索引值。
toLocaleLowerCase()
用于把字符串转换为小写。
toLocaleUpperCase()
用于把字符串转换为大写。
search()
用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。
如果没有找到任何匹配的子串,则返回 -1。
search() 方法不执行全局匹配。
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
stringObject.indexOf(searchvalue,fromindex)
searchvalue 必需。规定需检索的字符串值。
fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。
如果要检索的字符串值没有出现,则该方法返回 -1。
lastIndexOf()
可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
stringObject.lastIndexOf(searchvalue,fromindex)
searchvalue 必需。规定需检索的字符串值。
fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。
match()
方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。
stringObject.match(searchvalue)
stringObject.match(regexp)
searchvalue 必需。规定要检索的字符串值。
regexp 必需。规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象。
下面就是数组的方法
隐式变化
var str = ''+arr;
toString() 方法可把一个逻辑值(数组)转换为字符串,并返回结果。
delete 删除数据 数组长度不变
for..in.. 不会遍历删除的元素
join(separator) 方法用于把数组中的所有元素变为一个一个字符串进行连接。元素是通过指定的分隔符进行分隔的。
separator 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
arrayObject.concat(x,x,x,..) 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
x 必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。
返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。
末尾添加,末尾删除:
push(1,2,x,.......) 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
1 必需。要添加到数组的第一个元素。
2 可选。要添加到数组的第二个元素。
x 可选。可添加多个元素。
返回值:把指定的值添加到数组后的新长度。
注释:该方法会改变数组的长度。
pop() 方法用于删除并返回数组的最后一个元素。
pop() 方法将删除原来值的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。
开头添加,开头删除
unshift(1,2,x,.........) 方法可向数组的开头添加一个或更多元素,并返回新的长度。
1 必需。向数组添加的第一个元素。
2 可选。向数组添加的第二个元素。
x 可选。可添加若干个元素。
请注意,unshift() 方法不创建新的创建,而是直接修改原有的数组。
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。请注意,该方法不创建新数组,而是直接修改原有的值。
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
注释:该方法会改变原始数组。
splice(index,howmany,item1,.....,itemX)
index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX 可选。向数组添加的新项目。
reverse() 方法用于颠倒数组中元素的顺序。
注释:该方法会改变原来的数组,而不会创建新的数组。
sort() 方法用于对数组的元素进行排序。
arrayObject.sort(sortby)
sortby 可选。规定排序顺序。必须是函数。
如果调用该方法时没有使用参数,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
a-b 升序 a=1 b=2 1-2 就相当于 1,2
b-a 降序 b=2 a=1 2-1 就相当于 2,1