1. /**
2. * js 各种表单数据验证
3. */
4. /**************************************************************************************/
5. /*************************************数字的验 证*****************************************/
6. /**************************************************************************************/
7.
8. /**
9. * 检查输入的一串字符是否全部是数字
10. * 输入:str 字符 串
11. * 返回:true 或 flase; true表示为数字
12. */
13. function
14. returnstr.match(//D/) ==null;
15. }
16.
17. /**
18. * 检查输入的一串字符是否为小数
19. * 输入:str 字符串
20. * 返 回:true 或 flase; true表示为小数
21. */
22. function
23. if(str.match(/^-?/d+(/./d+)?$/g) ==null) {
24. returnfalse;
25. }
26. else
27. returntrue;
28. }
29. }
30.
31. /**
32. * 检查输入的一串字符是否为整型数据
33. * 输入:str 字 符串
34. * 返回:true 或 flase; true表示为小数
35. */
36. function
37. if(str.match(/^[-+]?/d*$/) ==null) {
38. returnfalse;
39. }
40. else
41. returntrue;
42. }
43. }
44.
45. /**************************************************************************************/
46. /*************************************字符的验 证*****************************************/
47. /**************************************************************************************/
48.
49. /**
50. * 检查输入的一串字符是否是字符
51. * 输入:str 字符串
52. * 返 回:true 或 flase; true表示为全部为字符 不包含汉字
53. */
54. function
55. if
56. returnfalse;
57. }
58. else
59. returntrue;
60. }
61. }
62.
63. /**
64. * 检查输入的一串字符是否包含汉字
65. * 输入:str 字符串
66. * 返 回:true 或 flase; true表示包含汉字
67. */
68. function
69. if
70. returntrue;
71. }
72. else
73. returnfalse;
74. }
75. }
76.
77. /**
78. * 检查输入的邮箱格式是否正确
79. * 输入:str 字符串
80. * 返 回:true 或 flase; true表示格式正确
81. */
82. function
83. if(str.match(/[A-Za-z0-9_-]+[@](/S*)(net|com|cn|org|cc|tv|[0-9]{1,3})(/S*)/g) ==null) {
84. returnfalse;
85. }
86. else
87. returntrue;
88. }
89. }
90.
91. /**
92. * 检查输入的手机号码格式是否 正确
93. * 输入:str 字符串
94. * 返回:true 或 flase; true表示格式正确
95. */
96. function
97. if(str.match(/^(?:13/d|15[89])-?/d{5}(/d{3}|/*{3})$/) ==null) {
98. returnfalse;
99. }
100. else
101. returntrue;
102. }
103. }
104.
105. /**
106. * 检查输入的固定电话号码是否 正确
107. * 输入:str 字符串
108. * 返回:true 或 flase; true表示格式正确
109. */
110. function
111. if(str.match(/^(([0/+]/d{2,3}-)?(0/d{2,3})-)(/d{7,8})(-(/d{3,}))?$/) ==null) {
112. returnfalse;
113. }
114. else
115. returntrue;
116. }
117. }
118.
119. /**
120. * 检查QQ的格式是否正确
121. * 输入:str 字符串
122. * 返 回:true 或 flase; true表示格式正确
123. */
124. function
125. if(str.match(/^/d{5,10}$/) ==null) {
126. returnfalse;
127. }
128. else
129. returntrue;
130. }
131. }
132.
133. /**
134. * 检查输入的身份证号是否正确
135. * 输入:str 字符串
136. * 返 回:true 或 flase; true表示格式正确
137. */
138. function
139. //15位数身份证正则表达式
140. var
141. //18位数身份证正则表达式
142. var
143. if(str.match(arg1) ==null&& str.match(arg2) ==null) {
144. returnfalse;
145. }
146. else
147. returntrue;
148. }
149. }
150.
151. /**
152. * 检查输入的IP地址是否正确
153. * 输入:str 字符串
154. * 返 回:true 或 flase; true表示格式正确
155. */
156. function
157. var
158. if(str.match(arg) ==null) {
159. returnfalse;
160. }
161. else
162. returntrue;
163. }
164. }
165.
166. /**
167. * 检查输入的URL地址是否正确
168. * 输入:str 字符串
169. * 返 回:true 或 flase; true表示格式正确
170. */
171. function
172. if(str.match(/(http[s]?|ftp):[^///.]+?/..+/w$/i) ==null) {
173. returnfalse
174. }
175. else
176. returntrue;
177. }
178. }
179.
180. /**
181. * 检查输入的字符是否具有特殊字符
182. * 输入:str 字符串
183. * 返 回:true 或 flase; true表示包含特殊字符
184. * 主要用于注册信息的时候验证
185. */
186. function
187. varitems =newArray(“~”, “`”, “!”, “@”, “#”, “$”, “%”, “^”, “&”, “*”, “{“, “}”, “[", "]“, “(“, “)”);
188. items.push(“:”, “;”, “‘”, “|”, “//”, “<”, “>”, “?”, “/”, “<<”, “>>”, “||”, “//”);
189. items.push(“admin”, “administrators”, “administrator”, “管 理员”, “系统管理员”);
190. items.push(“select”, “delete”, “update”, “insert”, “create”, “drop”, “alter”, “trancate”);
191. str = str.toLowerCase();
192. for(var
193. if
194. returntrue;
195. }
196. }
197. returnfalse;
198. }
199.
200. /**************************************************************************************/
201. /*************************************时间的验 证*****************************************/
202. /**************************************************************************************/
203.
204. /**
205. * 检查日期格式是否正确
206. * 输入:str 字符串
207. * 返 回:true 或 flase; true表示格式正确
208. * 注意:此处不能验证中文日期格式
209. * 验证短日期(2007-06-05)
210. */
211. function
212. //var value=str.match(/((^((1[8-9]/d{2})|([2-9]/d{3}))(-)(10|12|0?[13578])(-)(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]/d{2})|([2-9]/d{3}))(-)(11|0?[469])(-)(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]/d{2})|([2-9]/d{3}))(-)(0?2)(-)(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)(-)(0?2)(-)(29)$)|(^([3579][26]00)(-)(0?2)(-)(29)$)|(^([1][89][0][48])(-)(0?2)(-)(29)$)|(^([2-9][0-9][0][48])(-)(0?2)(-)(29)$)|(^([1][89][2468][048])(-)(0?2)(-)(29)$)|(^([2-9][0-9][2468][048])(-)(0?2)(-)(29)$)|(^([1][89][13579][26])(-)(0?2)(-)(29)$)|(^([2-9][0-9][13579][26])(-)(0?2)(-)(29)$))/);
213. var
214. if(value ==null) {
215. returnfalse;
216. }
217. else
218. vardate =new
219. return
220. }
221. }
222.
223. /**
224. * 检查时间格式是否正确
225. * 输入:str 字符串
226. * 返回:true 或 flase; true表示 格式正确
227. * 验证时间(10:57:10)
228. */
229. function
230. var
231. if(value ==null) {
232. returnfalse;
233. }
234. else
235. if
236. returnfalse
237. }
238. else
239. returntrue;
240. }
241. }
242. }
243.
244. /**
245. * 检查全日期时间格式是否正确
246. * 输入:str 字符串
247. * 返 回:true 或 flase; true表示格式正确
248. * (2007-06-05 10:57:10)
249. */
250. function
251. //var value = str.match(/^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2}) (/d{1,2}):(/d{1,2}):(/d{1,2})$/);
252. var
253. if(value ==null) {
254. returnfalse;
255. }
256. else
257. //var date = new Date(checkFullTime[1], checkFullTime[3] – 1, checkFullTime[4], checkFullTime[5], checkFullTime[6], checkFullTime[7]);
258. //return (date.getFullYear() == value[1] && (date.getMonth() + 1) == value[3] && date.getDate() == value[4] && date.getHours() == value[5] && date.getMinutes() == value[6] && date.getSeconds() == value[7]);
259. returntrue;
260. }
261.
262. }
263.
264. /**************************************************************************************/
265. /************************************身份证号码的 验证*************************************/
266. /**************************************************************************************/
267.
268. /**
269. * 身份证15位编码规则:dddddd yymmdd xx p
270. * dddddd: 地区码
271. * yymmdd: 出生年月日
272. * xx: 顺序类编码,无法确定
273. * p: 性别,奇数为男,偶数为女
274. * <p />
275. * 身 份证18位编码规则:dddddd yyyymmdd xxx y
276. * dddddd:地区码
277. * yyyymmdd: 出生年月日
278. * xxx: 顺序类编码,无法确定,奇数为男,偶数为女
279. * y: 校验码,该位数值可通过前17位计算获得
280. * <p />
281. * 18 位号码加权因子为(从右到 左) Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2,1 ]
282. * 验 证位 Y = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ]
283. * 校验位计算公 式:Y_P = mod( ∑(Ai×Wi),11 )
284. * i为身份证号码从右往左数的 2…18 位; Y_P为脚丫校验码所在校验码数 组位置
285. *
286. */
287. varWi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1];// 加权因子
288. varValideCode = [1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2];// 身份证验证位值.10代表X
289. function
290. idCard = trim(idCard.replace(/ /g, “”));
291. if
292. return
293. }
294. else
295. if
296. vara_idCard = idCard.split(“”);// 得到身份证数组
297. if
298. returntrue;
299. }
300. else
301. returnfalse;
302. }
303. }
304. else
305. returnfalse;
306. }
307. }
308.
309. /**
310. * 判断身份证号码为18位时最后的验证位是否正确
311. * @param a_idCard 身份证号码数组
312. * @return
313. */
314. function
315. varsum = 0; // 声明加权求和变量
316. if
317. a_idCard[17] = 10;// 将最后位为x的验证码替换为10方便后续操作
318. }
319. for(var
320. sum += Wi[i] * a_idCard[i];// 加权求和
321. }
322. valCodePosition = sum % 11;// 得到验证码所位置
323. if
324. returntrue;
325. }
326. else
327. returnfalse;
328. }
329. }
330.
331. /**
332. * 通过身份证判断是男是女
333. * @param idCard 15/18位身份证号码
334. * @return ‘female’- 女、’male’-男
335. */
336. function
337. idCard = trim(idCard.replace(/ /g, “”));// 对身份证号码做处理。包括字符间有空格。
338. if
339. if
340. return
341. }
342. else
343. return
344. }
345. }
346. else
347. if
348. if
349. return
350. }
351. else
352. return
353. }
354. }
355. else
356. returnnull;
357. }
358. }
359.
360. /**
361. * 验证18位数身份证号码中的生日是否是有效生日
362. * @param idCard 18位书身份证字符串
363. * @return
364. */
365. function
366. var
367. var
368. var
369. vartemp_date =new
370. // 这里用getFullYear()获取年份,避免千年虫问题
371. if
372. temp_date.getMonth() != parseFloat(month) – 1 ||
373. temp_date.getDate() != parseFloat(day)) {
374. returnfalse;
375. }
376. else
377. returntrue;
378. }
379. }
380.
381. /**
382. * 验证15位数身份证号码中的生日是否是有效生日
383. * @param idCard15 15位书身份证字符串
384. * @return
385. */
386. function
387. var
388. var
389. var
390. vartemp_date =new
391. // 对于老身份证中的你年龄则不需考虑千年虫问题而使用getYear()方法
392. if
393. temp_date.getMonth() != parseFloat(month) – 1 ||
394. temp_date.getDate() != parseFloat(day)) {
395. returnfalse;
396. }
397. else
398. returntrue;
399. }
400. }
401.
402. /**去掉字符串头尾空格*/
403. function
404. return
405. }