盒子
盒子

js常用工具函数

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
// 常用正则校验
var hrjia = {
check: {
isPhone: function() {
var ua = navigator.userAgent.toLowerCase(),
reg = /iPhone|iPad|Android|ucweb|windows\s+mobile|Windows\s+Phone/i;
return reg.test(ua)
},
isIE6: window.VBArray && !window.XMLHttpRequest,
isNick: function(str) {
var nickReg = /^[\u4e00-\u9fa5A-Za-z0-9-_]+$/;
return nickReg.test(str)
},
isEmail: function(str) {
var emailReg = /^[a-z0-9][\w\.]*@([a-z0-9][a-z0-9-]*\.)+[a-z]{2,5}$/i;
return emailReg.test(str)
},
isMobile: function(str) {
var mobileReg = /^1[345678][0-9]{9}$/;
return mobileReg.test(str)
},
isTelephone: function(str) {
var phoneReg = /^0\d{2,3}-\d{5,9}$/;
return phoneReg.test(str)
},
isUrl: function(str) {
var urlReg = /^http:\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%&=]*)?$/;
return urlReg.test(str)
},
isNum: function(str) {
var numReg = /^[0-9]\d*$/;
return numReg.test(str)
},
isFloatNum: function(str) {
var floatReg = /^(-?\d+)(\.\d+)?$/;
return floatReg.test(str)
},
isDate: function(str) {
var dateReg = /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/;
return dateReg.test(str)
},
isAnimate: function(style) {
var prefix = ["webkit", "Moz", "ms", "o"],
i, humpString = [],
htmlStyle = document.documentElement.style,
_toHumb = function(string) {
return string.replace(/-(\w)/g, function($0, $1) {
return $1.toUpperCase()
})
};
for (i in prefix) {
humpString.push(_toHumb(prefix[i] + "-" + style))
}
humpString.push(_toHumb(style));
for (i in humpString) {
if (humpString[i] in htmlStyle) {
return true
}
}
return false
}
} ,
// 工具类
tools: {
// 获取url的参数
getUrlParams: function(name) {
var url = location.href,
value = null,
index = url.indexOf("?");
if (index < 0) {
if( name ){
return undefined ;
}else{
return {} ;
}
} else {
var paramstr = url.substring(index + 1),
obj = {},
arrParams = paramstr.split("&");
for (var i = 0; i < arrParams.length; i++) {
var tmp = arrParams[i].split("=");
obj[tmp[0]] = tmp[1] ? decodeURIComponent( tmp[1] ) : undefined ;
}
if (name) {
return obj[name]
} else {
return obj
}
}
} ,
// 获取url的节点部分 http://www.hrjia.com/hr/resume/HR1028131626713
// 执行之后返回 ["www.hrjia.com", "hr", "resume", "HR1028131626713"]
getUrlTree: function(index) {
var urlNode = location.href.replace(/http:\/\//i, "").replace(/\?.*/i, "").split("/"),
length = urlNode.length;
if (index == undefined) {
return urlNode
} else {
return index < 0 ? urlNode[length + index] : urlNode[index]
}
}
} ,
// 前缀补齐 function addZero(str,length){return new Array(length - str.length + 1).join("0") + str;}
pad:function(num, n) {
var len = num.toString().length;
while(len < n) {
num = "0" + num;
len++;
}
return num;
} ,
padNumber: function(num, fill) { /* 字符自动补全 */
//改自:http://segmentfault.com/q/1010000002607221
var len = ('' + num).length;
return (Array(
fill > len ? fill - len + 1 || 0 : 0
).join(0) + num);
} ,
/* uuid生成器 */
UUID: function (){
var d = new Date().getTime();
var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = (d + Math.random()*16)%16 | 0;
d = Math.floor(d/16);
return (c=='x' ? r : (r&0x7|0x8)).toString(16);
});
return uuid;
} ,
/* 判断是否是有效的日期对象 */
isDateObj: function (o) {
return {}.toString.call(o) === "[object Date]" && o.toString() !== 'Invalid Date' && !isNaN(o);
} ,
/* 校验日期格式 */
checkDate: function( date ){
/* 年月日 格式yyyy-MM-dd或yyyy-M-d -/.分割 */
var dateReg = /^(?:(?!0000)[0-9]{4}([-/.]?)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2\2(?:29))$/;
/* 年月日 格式yyyy-MM-dd HH:mm:ss -/.分割 */
var dateTimeReg = /^(?:(?!0000)[0-9]{4}([-/.]?)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2\2(?:29))\s+([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/;
if( date.indexOf(':') < 0 ){
return dateReg.test( date ) ;
}else{
return dateTimeReg.test( date ) ;
}
}
};
支持一下
扫一扫,支持lcoder