js常用实例实现

工作中常常会用到很多对数组、字符串的简单重复操作,本文主要根据日常工作遇到的一些情况归纳,总结出一些常用的js方法

1. 字符串操作

1-1 去除字符串空格
1
2
3
4
5
6
7
8
9
10
//去除空格 type 1-所有空格 2-前后空格 3-前空格 4-后空格
function trim(str, type) {
switch (type) {
case 1: return str.replace(/\s+/g, "");
case 2: return str.replace(/(^\s*)|(\s*$)/g, "");
case 3: return str.replace(/(^\s*)/g, "");
case 4: return str.replace(/(\s*$)/g, "");
default: return str;
}
}
1-2 字母大小写切换
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//checkPwd('12asdASAD')
//3(强度等级为3)
function checkPwd(str) {
var nowLv = 0;
if (str.length < 6) {
return nowLv
}
if (/[0-9]/.test(str)) {
nowLv++
}
if (/[a-z]/.test(str)) {
nowLv++
}
if (/[A-Z]/.test(str)) {
nowLv++
}
if (/[\.|-|_]/.test(str)) {
nowLv++
}
return nowLv;
}
1-3 查找字符串出现的次数
1
2
3
4
5
6
7
/* var strTest='sad44654blog5a1sd67as9dablog4s5d16zxc4sdweasjkblogwqepaskdkblogahseiuadbhjcibloguyeajzxkcabloguyiwezxc967'
* countStr(strTest,'blog')
* 6
*/
function countStr (str,strSplit){
return str.split(strSplit).length-1
}
1-4 数组去重
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//ES6新增的Set数据结构,类似于数组,但是里面的元素都是唯一的 ,其构造函数可以接受一个数组作为参数
//let arr=[1,2,1,2,6,3,5,69,66,7,2,1,4,3,6,8,9663,8]
//let set = new Set(array);
//{1,2,6,3,5,69,66,7,4,8,9663}
//ES6中Array新增了一个静态方法from,可以把类似数组的对象转换为数组
//Array.from(set)
//[1,2,6,3,5,69,66,7,4,8,9663]
方法一:
function removeRepeatArray(arr){
return Array.from(new Set(arr))
}
方法二:
function removeRepeatArray(arr) {
var r = [];
for(var i=0,len=arr.length; i<len; i++){
if(r.indexOf(arr[i])===-1){
r.push(arr[i]);
}
}
return r;
}
方法三:
function removeRepeatArray(arr) {
var r = arr.filter(function(item,index,self){
return self.indexOf(item) == index;
});
return r;
}