JS字符串与数组操作
2015/09/23
话说这些真是看一遍忘一遍啊,归根到底还是用得少。做一下笔记,免得下次用又去找资料了。
- split、
- slice/substring、
- substr、
- concat、
- indexOf/lastIndexOf、
- charAt/charCodeAt、
- search/match/replace、
- toLowerCase/toUpperCase
字符串基本操作
split
感觉split
是我用得最多的一个api。可以将字符串以输入的参数字符分隔,然后返回一个数组。
1 | "abcd".split() |
slice/substring
截取字符串。接受两个参数,第一个是起始位位置,第二个是结束位+1。两者区别在于传入负值参数的时候,slice
是会从末尾开始数,substring
则不会。
1 | "abcdef".slice() |
substr
返回字符串的一个子串,传入参数是起始位置和长度
1 | "abcde".substr(1,2) |
concat
拼接字符串。
1 | "abc".concat("def") |
indexOf/lastIndexOf
返回一个字符在字符串中第一次出现的索引。
1 | "ababa".indexOf("a") |
charAt/charCodeAt
返回索引处的字符 / unicode编码
1 | "abcde".charAt("2") |
search/match/replace
这三个都涉及到正则表达式,所以放在一起讨论。search
返回第一次匹配的索引值,replace
找到匹配的位置并替换,match
则以数组形式返回匹配的字串。
1 | "abcdef".search(/ab/) |
toLowerCase/toUpperCase
1 | "abababcdef".toUpperCase() |
字符串操作实用函数
trim
去除字符串前后的空格
1 | String.prototype.Trim = function(){ |
计算字符串长度
1 | String.prototype.LengthW = function(){ |
数组基本操作
join
返回字符串,这个字符串将数组的每一个元素值连接在一起,用参数连接
1 | ["abc",{}].join('k') |
reverse/sort
前者将数组反转,返回新数组指针1
2
3
4
5
6
7["abc","dd"].reverse()
//["dd", "abc"]
var a = ["abc","dd"];
a.reverse();
a;
//["dd", "abc"]
slice
参数为start与end,返回一个新数组,原数组不变
1 | var a = ["abc","dd","cc","gh"]; |
splice
原数组会发生改变
- 删除-用于删除元素,两个参数,第一个参数(要删除第一项的位置),第二个参数(要删除的项数)
- 插入-向数组指定位置插入任意项元素。三个参数,第一个参数(其实位置),第二个参数(0),第三个参数(插入的项)
- 替换-向数组指定位置插入任意项元素,同时删除任意数量的项,三个参数。第一个参数(起始位置),第二个参数(删除的项数),第三个参数(插入任意数量的项)
1
2
3
4
5
6
7
8
9
10
11
12
13var lang = ["php","java","javascript"];
//删除
var removed = lang.splice(1,1);
lang //["php","javascript" ]
removed; //["java"] ,返回删除的项
//插入
var insert = lang.splice(0,0,"asp"); //从第0个位置开始插入
insert; //返回空数组
lang; //["asp","php","javascript"]
//替换
var replace = lang.splice(1,1,"c#","ruby"); //删除一项,插入两项
lang; //["asp","c#","ruby"]
replace; //["php"]
concat
拼接数组,返回新数组,原数组不变
1 | var a = ["abc","dd","cc","gh"]; |