欧美三区四区_av先锋影音资源站_亚洲第一论坛sis_影音先锋2020色资源网_亚洲精品社区_在线免费观看av网站_国产一区二区伦理_亚洲欧美视频一区二区_99视频精品全部免费在线_精精国产xxxx视频在线

一個常用的正則表達驗證類_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:php如何調用c接口無錯版
1.首先是要安裝好PHP 2.進入PHP的下載解壓目錄下的ext目錄 #cd /root/php-5.3.6/ext #./ext_skel --extname=hmc 說明: ./ext_skel --extname=module_name module_name是你自己可以選擇的擴展模塊的名字,例如我選擇的hmc。執行工具后會自動在ext目錄下建立你選擇的mod

 很早以前寫的一個正則表達式驗證工具類,包含了一些常見的校驗和支持自定義的正則表達式匹配,可以選擇完全匹配,也可以獲取所有匹配項。曾用它仿造Eclispe下的正則表達式插件寫過一個工具。因為最近突然有幾個朋友都在問這方面的問題,干脆就把代碼貼出來好了。

using System;
02.using System.Collections;
03.using System.Text.RegularExpressions;
04.
05.namespace Xrinehart.Framework.Common.Validate
06.{
07. /**//// <summary>
08. /// RegularMatch 的摘要說明。
09. /// </summary>
10. public class RegularMatch
11. {
12. private string _String;
13. private bool _IsEntirety;
14.
15. /**//// <summary>
16. /// 可以進行判斷的類型
17. /// </summary>
18. public enum Operation
19. {
20. Byte, SByte, Int16, Int32, Int64, Single, Double, Boolean, Char, Decimal, DateTime, Date, Time,
21. EMail, URL, ChinaPhone, ChineseWord, ChinesePostalCode, Number, StringModel_01, StringModel_02, WideWord, NarrowWord, IPAddress,
22. ChineseMobile, ChineseID
23. };
24.
25. public RegularMatch() { }
26.
27. 用于判斷字符串是否是對應類型(默認為包含匹配)#region 用于判斷字符串是否是對應類型(默認為包含匹配)
28. public bool IsAccordType(string strVerifyString, Operation op)
29. {
30. return IsAccordType(strVerifyString, op, false);
31. }
32. #endregion
33.
34. 用于判斷字符串是否是對應類型(或是否包含對應類型的字符)#region 用于判斷字符串是否是對應類型(或是否包含對應類型的字符)
35. /**//// <summary>
36. /// 用于判斷字符串是否是對應類型
37. /// </summary>
38. /// <param name="strVerifyString">String,需要判斷的字符串</param>
39. /// <param name="op">Operation枚舉,用于選擇需要進行的操作</param>
40. /// <param name="IsEntirety">Boolean,判斷是完全匹配還是包含匹配模式(僅適用于非類型判斷時)</param>
41. /// <returns></returns>
42. public bool IsAccordType(string strVerifyString, Operation op, bool IsEntirety)
43. {
44. _String = strVerifyString;
45. _IsEntirety = IsEntirety;
46.
47. switch (op)
48. {
49. case Operation.Byte:
50. {
51. return IsByte();
52. }
53. case Operation.SByte:
54. {
55. return IsSByte();
56. }
57. case Operation.Int16:
58. {
59. return IsInt16();
60. }
61. case Operation.Int32:
62. {
63. return IsInt32();
64. }
65. case Operation.Int64:
66. {
67. return IsInt64();
68. }
69. case Operation.Single:
70. {
71. return IsSingle();
72. }
73. case Operation.Double:
74. {
75. return IsDouble();
76. }
77. case Operation.Boolean:
78. {
79. return IsBoolean();
80. }
81. case Operation.Char:
82. {
83. return IsChar();
84. }
85. case Operation.Decimal:
86. {
87. return IsDecimal();
88. }
89. case Operation.DateTime:
90. {
91. return IsDateTime();
92. }
93. case Operation.Date:
94. {
95. return IsDate();
96. }
97. case Operation.Time:
98. {
99. return IsTime();
100. }
101. case Operation.IPAddress:
102. {
103. return IsIPAddress();
104. }
105. case Operation.ChinaPhone:
106. {
107. return IsChinaPhone();
108. }
109. case Operation.ChinesePostalCode:
110. {
111. return IsChinesePostalCode();
112. }
113. case Operation.ChineseMobile:
114. {
115. return IsChineseMobile();
116. }
117. case Operation.EMail:
118. {
119. return IsEmail();
120. }
121. case Operation.URL:
122. {
123. return IsURL();
124. }
125. case Operation.ChineseWord:
126. {
127. return IsChineseWord();
128. }
129. case Operation.Number:
130. {
131. return IsNumber();
132. }
133. case Operation.StringModel_01:
134. {
135. return IsStringModel_01();
136. }
137. case Operation.StringModel_02:
138. {
139. return IsStringModel_02();
140. }
141. case Operation.WideWord:
142. {
143. return IsWideWord();
144. }
145. case Operation.NarrowWord:
146. {
147. return IsNarrowWord();
148. }
149. case Operation.ChineseID:
150. {
151. return IsChineseID();
152. }
153. default:
154. {
155. return false;
156. }
157. }
158. }
159. #endregion
160.
161. 具體驗證方法#region 具體驗證方法
162.
163. 是否Byte類型(8 位的無符號整數): 0 和 255 之間的無符號整數#region 是否Byte類型(8 位的無符號整數): 0 和 255 之間的無符號整數
164. /**//// <summary>
165. /// 是否Byte類型(8 位的無符號整數): 0 和 255 之間的無符號整數
166. /// </summary>
167. /// <returns>Boolean</returns>
168. protected bool IsByte()
169. {
170. try
171. {
172. Byte.Parse(_String);
173. }
174. catch
175. {
176. return false;
177. }
178. return true;
179. }
180. #endregion
181.
182. 是否SByte類型(8 位的有符號整數): -128 到 +127 之間的整數#region 是否SByte類型(8 位的有符號整數): -128 到 +127 之間的整數
183. /**//// <summary>
184. /// 是否SByte類型(8 位的有符號整數): -128 到 +127 之間的整數
185. /// </summary>
186. /// <returns>Boolean</returns>
187. protected bool IsSByte()
188. {
189. try
190. {
191. SByte.Parse(_String);
192. }
193. catch
194. {
195. return false;
196. }
197. return true;
198. }
199. #endregion
200.
201. 是否Int16類型(16 位的有符號整數): -32768 到 +32767 之間的有符號整數#region 是否Int16類型(16 位的有符號整數): -32768 到 +32767 之間的有符號整數
202. /**//// <summary>
203. /// 是否Int16類型(16 位的有符號整數): -32768 到 +32767 之間的有符號整數
204. /// </summary>
205. /// <returns>Boolean</returns>
206. protected bool IsInt16()
207. {
208. try
209. {
210. Int16.Parse(_String);
211. }
212. catch
213. {
214. return false;
215. }
216. return true;
217. }
218. #endregion
219.
220. 是否Int32類型(32 位的有符號整數):-2,147,483,648 到 +2,147,483,647 之間的有符號整數#region 是否Int32類型(32 位的有符號整數):-2,147,483,648 到 +2,147,483,647 之間的有符號整數
221. /**//// <summary>
222. /// 是否Int32類型(32 位的有符號整數):-2,147,483,648 到 +2,147,483,647 之間的有符號整數
223. /// </summary>
224. /// <returns>Boolean</returns>
225. protected bool IsInt32()
226. {
227. try
228. {
229. Int32.Parse(_String);
230. }
231. catch
232. {
233. return false;
234. }
235. return true;
236. }
237. #endregion
238.
239. 是否Int64類型(64 位的有符號整數): -9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807 之間的整數#region 是否Int64類型(64 位的有符號整數): -9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807 之間的整數
240. /**//// <summary>
241. /// 是否Int64類型(64 位的有符號整數): -9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807 之間的整數
242. /// </summary>
243. /// <returns>Boolean</returns>
244. protected bool IsInt64()
245. {
246. try
247. {
248. Int64.Parse(_String);
249. }
250. catch
251. {
252. return false;
253. }
254. return true;
255. }
256. #endregion
257.
258. 是否Single類型(單精度(32 位)浮點數字): -3.402823e38 和 +3.402823e38 之間的單精度 32 位數字#region 是否Single類型(單精度(32 位)浮點數字): -3.402823e38 和 +3.402823e38 之間的單精度 32 位數字
259. /**//// <summary>
260. /// 是否Single類型(單精度(32 位)浮點數字): -3.402823e38 和 +3.402823e38 之間的單精度 32 位數字
261. /// </summary>
262. /// <returns>Boolean</returns>
263. protected bool IsSingle()
264. {
265. try
266. {
267. Single.Parse(_String);
268. }
269. catch
270. {
271. return false;
272. }
273. return true;
274. }
275. #endregion
276.
277. 是否Double類型(單精度(64 位)浮點數字): -1.79769313486232e308 和 +1.79769313486232e308 之間的雙精度 64 位數字#region 是否Double類型(單精度(64 位)浮點數字): -1.79769313486232e308 和 +1.79769313486232e308 之間的雙精度 64 位數字
278. /**//// <summary>
279. /// 是否Double類型(單精度(64 位)浮點數字): -1.79769313486232e308 和 +1.79769313486232e308 之間的雙精度 64 位數字
280. /// </summary>
281. /// <returns>Boolean</returns>
282. protected bool IsDouble()
283. {
284. try
285. {
286. Double.Parse(_String);
287. }
288. catch
289. {
290. return false;
291. }
292. return true;
293. }
294. #endregion
295.
296. 是否Boolean類型(布爾值):true 或 false#region 是否Boolean類型(布爾值):true 或 false
297. /**//// <summary>
298. /// 是否Double類型(單精度(64 位)浮點數字): -1.79769313486232e308 和 +1.79769313486232e308 之間的雙精度 64 位數字
299. /// </summary>
300. /// <returns>Boolean</returns>
301. protected bool IsBoolean()
302. {
303. try
304. {
305. Boolean.Parse(_String);
306. }
307. catch
308. {
309. return false;
310. }
311. return true;
312. }
313. #endregion
314.
315. 是否Char類型(Unicode(16 位)字符):該 16 位數字的值范圍為從十六進制值 0x0000 到 0xFFFF#region 是否Char類型(Unicode(16 位)字符):該 16 位數字的值范圍為從十六進制值 0x0000 到 0xFFFF
316. /**//// <summary>
317. /// 是否Char類型(Unicode(16 位)字符):該 16 位數字的值范圍為從十六進制值 0x0000 到 0xFFFF
318. /// </summary>
319. /// <returns>Boolean</returns>
320. protected bool IsChar()
321. {
322. try
323. {
324. Char.Parse(_String);
325. }
326. catch
327. {
328. return false;
329. }
330. return true;
331. }
332. #endregion
333.
334. 是否Char類型(96 位十進制值):從正 79,228,162,514,264,337,593,543,950,335 到負 79,228,162,514,264,337,593,543,950,335 之間的十進制數#region 是否Char類型(96 位十進制值):從正 79,228,162,514,264,337,593,543,950,335 到負 79,228,162,514,264,337,593,543,950,335 之間的十進制數
335. /**//// <summary>
336. /// 是否Char類型(96 位十進制值):從正 79,228,162,514,264,337,593,543,950,335 到負 79,228,162,514,264,337,593,543,950,335 之間的十進制數
337. /// </summary>
338. /// <returns>Boolean</returns>
339. protected bool IsDecimal()
340. {
341. try
342. {
343. Decimal.Parse(_String);
344. }
345. catch
346. {
347. return false;
348. }
349. return true;
350. }
351. #endregion
352.
353. 是否DateTime類型(表示時間上的一刻): 范圍在公元(基督紀元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之間的日期和時間#region 是否DateTime類型(表示時間上的一刻): 范圍在公元(基督紀元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之間的日期和時間
354. /**//// <summary>
355. /// 是否DateTime類型(表示時間上的一刻): 范圍在公元(基督紀元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之間的日期和時間
356. /// </summary>
357. /// <returns>Boolean</returns>
358. protected bool IsDateTime()
359. {
360. try
361. {
362. DateTime.Parse(_String);
363. }
364. catch
365. {
366. return false;
367. }
368. return true;
369. }
370. #endregion
371.
372. 是否Date類型(表示時間的日期部分): 范圍在公元(基督紀元)0001 年 1 月 1 日 到公元 (C.E.) 9999 年 12 月 31 日之間的日期#region 是否Date類型(表示時間的日期部分): 范圍在公元(基督紀元)0001 年 1 月 1 日 到公元 (C.E.) 9999 年 12 月 31 日之間的日期
373. /**//// <summary>
374. /// 是否Date類型(表示時間的日期部分): 范圍在公元(基督紀元)0001 年 1 月 1 日 到公元 (C.E.) 9999 年 12 月 31 日之間的日期
375. /// </summary>
376. /// <returns>Boolean</returns>
377. protected bool IsDate()
378. {
379. DateTime Value;
380. try
381. {
382. Value = DateTime.Parse(_String);
383. }
384. catch
385. {
386. return false;
387. }
388. if (Value.Date.ToString() == _String)
389. {
390. return true;
391. }
392. else
393. {
394. return false;
395. }
396. }
397. #endregion
398.
399. 是否Time類型(表示時間部分HHMMSS): 范圍在夜 12:00:00 到晚上 11:59:59 之間的時間#region 是否Time類型(表示時間部分HHMMSS): 范圍在夜 12:00:00 到晚上 11:59:59 之間的時間
400. /**//// <summary>
401. /// 是否Time類型(表示時間部分HHMMSS): 范圍在夜 12:00:00 到晚上 11:59:59 之間的時間
402. /// </summary>
403. /// <returns>Boolean</returns>
404. protected bool IsTime()
405. {
406. DateTime Value;
407. try
408. {
409. Value = DateTime.Parse(_String);
410. }
411. catch
412. {
413. return false;
414. }
415. if (Value.Year == 1 && Value.Month == 1 && Value.Day == 1)
416. {
417. return true;
418. }
419. else
420. {
421. return false;
422. }
423. }
424. #endregion
425.
426. 是否IPAddress類型(IPv4 的情況下使用以點分隔的四部分表示法格式表示,IPv6 的情況下使用冒號與十六進制格式表示)#region 是否IPAddress類型(IPv4 的情況下使用以點分隔的四部分表示法格式表示,IPv6 的情況下使用冒號與十六進制格式表示)
427. /**//// <summary>
428. /// 是否IPAddress類型(IPv4 的情況下使用以點分隔的四部分表示法格式表示,IPv6 的情況下使用冒號與十六進制格式表示)
429. /// </summary>
430. /// <returns>Boolean</returns>
431. protected bool IsIPAddress()
432. {
433. try
434. {
435. System.Net.IPAddress.Parse(_String);
436. }
437. catch
438. {
439. return false;
440. }
441. return true;
442. }
443. #endregion
444.
445. 是否中國電話號碼類型(XXX/XXXX-XXXXXXX/XXXXXXXX (/d{3,4})-?/d{7,8}):判斷是否是(區號:3或4位)-(電話號碼:7或8位)#region 是否中國電話號碼類型(XXX/XXXX-XXXXXXX/XXXXXXXX (/d{3,4})-?/d{7,8}):判斷是否是(區號:3或4位)-(電話號碼:7或8位)
446. /**//// <summary>
447. /// 是否中國電話號碼類型(XXX/XXXX-XXXXXXX/XXXXXXXX (/d{3,4})-?/d{7,8}):判斷是否是(區號:3或4位)-(電話號碼:7或8位)
448. /// </summary>
449. /// <returns>Boolean</returns>
450. protected bool IsChinaPhone()
451. {
452. ArrayList aryResult = new ArrayList();
453. return CommRegularMatch(_String, @"(/d{3,4})-?/d{7,8}", RegexOptions.None, ref aryResult, _IsEntirety);
454. }
455. #endregion
456.
457. 是否中國郵政編碼(6位數字 /d{6})#region 是否中國郵政編碼(6位數字 /d{6})
458. /**//// <summary>
459. /// 是否中國郵政編碼(6位數字 /d{6})
460. /// </summary>
461. /// <returns>Boolean</returns>
462. protected bool IsChinesePostalCode()
463. {
464. ArrayList aryResult = new ArrayList();
465. return CommRegularMatch(_String, @"/d{6}", RegexOptions.None, ref aryResult, _IsEntirety);
466. }
467. #endregion
468.
469. 是否中國移動電話號碼(13開頭的總11位數字 13/d{9})#region 是否中國移動電話號碼(13開頭的總11位數字 13/d{9})
470. /**//// <summary>
471. /// 是否中國移動電話號碼(13開頭的總11位數字 13/d{9})
472. /// </summary>
473. /// <returns>Boolean</returns>
474. protected bool IsChineseMobile()
475. {
476. ArrayList aryResult = new ArrayList();
477. return CommRegularMatch(_String, @"13/d{9}", RegexOptions.None, ref aryResult, _IsEntirety);
478. }
479. #endregion
480.
481. 是否EMail類型(XXX@XXX.XXX /w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*)#region 是否EMail類型(XXX@XXX.XXX /w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*)
482. /**//// <summary>
483. /// 是否EMail類型(XXX@XXX.XXX /w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*)
484. /// </summary>
485. /// <returns>Boolean</returns>
486. protected bool IsEmail()
487. {
488. ArrayList aryResult = new ArrayList();
489. return CommRegularMatch(_String, @"/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*", RegexOptions.None, ref aryResult, _IsEntirety);
490. }
491. #endregion
492.
493. 是否Internet URL地址類型(http://)#region 是否Internet URL地址類型(http://)
494. /**//// <summary>
495. /// 是否Internet URL地址類型(http://)
496. /// </summary>
497. /// <returns>Boolean</returns>
498. protected bool IsURL()
499. {
500. ArrayList aryResult = new ArrayList();
501. return CommRegularMatch(_String, @"http://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)?", RegexOptions.None, ref aryResult, _IsEntirety);
502. }
503. #endregion
504.
505. 是否中文字符([/u4e00-/u9fa5])#region 是否中文字符([/u4e00-/u9fa5])
506. /**//// <summary>
507. /// 是否中文字符([/u4e00-/u9fa5])
508. /// </summary>
509. /// <returns>Boolean</returns>
510. protected bool IsChineseWord()
511. {
512. ArrayList aryResult = new ArrayList();
513. return CommRegularMatch(_String, @"[/u4e00-/u9fa5]", RegexOptions.None, ref aryResult, _IsEntirety);
514. }
515. #endregion
516.
517. 是否是數字(0到9的數字[/d]+):不包括符號"."和"-"#region 是否是數字(0到9的數字[/d]+):不包括符號"."和"-"
518. /**//// <summary>
519. /// 是否是數字(0到9的數字[/d]+):不包括符號"."和"-"
520. /// </summary>
521. /// <returns>Boolean</returns>
522. protected bool IsNumber()
523. {
524. ArrayList aryResult = new ArrayList();
525. return CommRegularMatch(_String, @"[/d]+", RegexOptions.None, ref aryResult, _IsEntirety);
526. }
527. #endregion
528.
529. 是否只包含數字,英文和下劃線([/w]+)#region 是否只包含數字,英文和下劃線([/w]+)
530. /**//// <summary>
531. /// 是否只包含數字,英文和下劃線([/w]+)
532. /// </summary>
533. /// <returns>Boolean</returns>
534. protected bool IsStringModel_01()
535. {
536. ArrayList aryResult = new ArrayList();
537. return CommRegularMatch(_String, @"[/w]+", RegexOptions.None, ref aryResult, _IsEntirety);
538. }
539. #endregion
540.
541. 是否大寫首字母的英文字母([A-Z][a-z]+)#region 是否大寫首字母的英文字母([A-Z][a-z]+)
542. /**//// <summary>
543. /// 是否大寫首字母的英文字母([A-Z][a-z]+)
544. /// </summary>
545. /// <returns>Boolean</returns>
546. protected bool IsStringModel_02()
547. {
548. ArrayList aryResult = new ArrayList();
549. return CommRegularMatch(_String, @"[A-Z][a-z]+", RegexOptions.None, ref aryResult, _IsEntirety);
550. }
551. #endregion
552.
553. 是否全角字符([^/x00-/xff]):包括漢字在內#region 是否全角字符([^/x00-/xff]):包括漢字在內
554. /**//// <summary>
555. /// 是否全角字符([^/x00-/xff]):包括漢字在內
556. /// </summary>
557. /// <returns>Boolean</returns>
558. protected bool IsWideWord()
559. {
560. ArrayList aryResult = new ArrayList();
561. return CommRegularMatch(_String, @"[^/x00-/xff]", RegexOptions.None, ref aryResult, _IsEntirety);
562. }
563. #endregion
564.
565. 是否半角字符([/x00-/xff])#region 是否半角字符([/x00-/xff])
566. /**//// <summary>
567. /// 是否半角字符([^/x00-/xff]):包括漢字在內
568. /// </summary>
569. /// <returns>Boolean</returns>
570. protected bool IsNarrowWord()
571. {
572. ArrayList aryResult = new ArrayList();
573. return CommRegularMatch(_String, @"[/x00-/xff]", RegexOptions.None, ref aryResult, _IsEntirety);
574. }
575. #endregion
576.
577. 是否合法的中國身份證號碼#region 是否合法的中國身份證號碼
578. protected bool IsChineseID()
579. {
580. if (_String.Length == 15)
581. {
582. _String = CidUpdate(_String);
583. }
584. if (_String.Length == 18)
585. {
586. string strResult = CheckCidInfo(_String);
587. if (strResult == "非法地區" || strResult == "非法生日" || strResult == "非法證號")
588. {
589. return false;
590. }
591. else
592. {
593. return true;
594. }
595. }
596. else
597. {
598. return false;
599. }
600. }
601. #endregion
602.
603. #endregion
604.
605. 通用正則表達式判斷函數#region 通用正則表達式判斷函數
606. /**//// <summary>
607. /// 通用正則表達式判斷函數
608. /// </summary>
609. /// <param name="strVerifyString">String,用于匹配的字符串</param>
610. /// <param name="strRegular">String,正則表達式</param>
611. /// <param name="regOption">RegexOptions,配置正則表達式的選項</param>
612. /// <param name="aryResult">ArrayList,分解的字符串內容</param>
613. /// <param name="IsEntirety">Boolean,是否需要完全匹配</param>
614. /// <returns></returns>
615. public bool CommRegularMatch(string strVerifyString, string strRegular, System.Text.RegularExpressions.RegexOptions regOption, ref System.Collections.ArrayList aryResult, bool IsEntirety)
616. {
617. System.Text.RegularExpressions.Regex r;
618. System.Text.RegularExpressions.Match m;
619.
620. 如果需要完全匹配的處理#region 如果需要完全匹配的處理
621. if (IsEntirety)
622. {
623. strRegular = strRegular.Insert(0, @"/A");
624. strRegular = strRegular.Insert(strRegular.Length, @"/z");
625. }
626. #endregion
627.
628. try
629. {
630. r = new System.Text.RegularExpressions.Regex(strRegular, regOption);
631. }
632. catch (System.Exception e)
633. {
634. throw (e);
635. }
636.
637. for (m = r.Match(strVerifyString); m.Success; m = m.NextMatch())
638. {
639. aryResult.Add(m);
640. }
641.
642. if (aryResult.Count == 0)
643. {
644. return false;
645. }
646. else
647. {
648. return true;
649. }
650. }
651. #endregion
652.
653. 中國身份證號碼驗證#region 中國身份證號碼驗證
654. private string CheckCidInfo(string cid)
655. {
656. string[] aCity = new string[] { null, null, null, null, null, null, null, null, null, null, null, "北京", "天津", "河北", "山西", "內蒙古", null, null, null, null, null, "遼寧", "吉林", "黑龍江", null, null, null, null, null, null, null, "上海", "江蘇", "浙江", "安微", "福建", "江西", "山東", null, null, null, "河南", "湖北", "湖南", "廣東", "廣西", "海南", null, null, null, "重慶", "四川", "貴州", "云南", "西藏", null, null, null, null, null, null, "陜西", "甘肅", "青海", "寧夏", "新疆", null, null, null, null, null, "臺灣", null, null, null, null, null, null, null, null, null, "香港", "澳門", null, null, null, null, null, null, null, null, "國外" };
657. double iSum = 0;
658. string info = string.Empty;
659. System.Text.RegularExpressions.Regex rg = new System.Text.RegularExpressions.Regex(@"^/d{17}(/d|x)$");
660. System.Text.RegularExpressions.Match mc = rg.Match(cid);
661. if (!mc.Success)
662. {
663. return string.Empty;
664. }
665. cid = cid.ToLower();
666. cid = cid.Replace("x", "a");
667. if (aCity[int.Parse(cid.Substring(0, 2))] == null)
668. {
669. return "非法地區";
670. }
671. try
672. {
673. DateTime.Parse(cid.Substring(6, 4) + " - " + cid.Substring(10, 2) + " - " + cid.Substring(12, 2));
674. }
675. catch
676. {
677. return "非法生日";
678. }
679. for (int i = 17; i >= 0; i--)
680. {
681. iSum += (System.Math.Pow(2, i) % 11) * int.Parse(cid[17 - i].ToString(), System.Globalization.NumberStyles.HexNumber);
682. }
683. if (iSum % 11 != 1)
684. {
685. return ("非法證號");
686. }
687. else
688. {
689. return (aCity[int.Parse(cid.Substring(0, 2))] + "," + cid.Substring(6, 4) + "-" + cid.Substring(10, 2) + "-" + cid.Substring(12, 2) + "," + (int.Parse(cid.Substring(16, 1)) % 2 == 1 ? "男" : "女"));
690. }
691. }
692. #endregion
693.
694. 身份證號碼15升級為18位#region 身份證號碼15升級為18位
695. private string CidUpdate(string ShortCid)
696. {
697. char[] strJiaoYan = { '1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2' };
698. int[] intQuan = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 };
699. string strTemp;
700. int intTemp = 0;
701.
702. strTemp = ShortCid.Substring(0, 6) + "19" + ShortCid.Substring(6);
703. for (int i = 0; i <= strTemp.Length - 1; i++)
704. {
705. intTemp += int.Parse(strTemp.Substring(i, 1)) * intQuan[i];
706. }
707. intTemp = intTemp % 11;
708. return strTemp + strJiaoYan[intTemp];
709. }
710. #endregion
711. }
712.}

分享:C#調用windows api的要點
在.Net Framework SDK文檔中,關于調用Windows API的指示比較零散,并且其中稍全面一點的是針對Visual Basic .net講述的。本文將C#中調用API的要點匯集如下,希望給未在C#中使用過API的朋友一點幫助。另外如果安裝了Visual Studio .net的話,在C:/Program Files/Micros

來源:模板無憂//所屬分類:PHP教程/更新時間:2015-02-06
相關PHP教程
久久精品无码中文字幕| 色哟哟亚洲精品一区二区| 成人在线一区二区| 伊人五月天婷婷| 亚洲精品一级片| 好吊视频一区二区三区四区| 亚洲国产精品久久一线不卡| 欧美最近摘花xxxx摘花| 国产aaaaa毛片| 国产精品高潮呻吟久久久| 国产精品伦理久久久久久| 亚洲图片有声小说| 国产成人精品日本亚洲| 永久免费黄色片| 不卡av播放| 国产精品影音先锋| 亚洲免费福利视频| 7777在线视频| 一级做a爰片久久毛片| 外国成人激情视频| 欧美日韩色婷婷| 91老司机精品视频| 亚洲午夜福利在线观看| 成人在线精品| 久久影院午夜论| 美女国内精品自产拍在线播放| 日韩欧美一区二| 国产精品国产一区二区三区四区| 一本久道久久综合狠狠爱| 欧美日韩一区二区三区在线看| 91九色偷拍| 天天躁夜夜躁狠狠是什么心态| 亚洲五码在线| 国产精品欧美一级免费| 97在线看福利| 国产成人精品综合久久久久99| 成人mm视频在线观看| 成人免费高清视频| 欧美理论电影在线播放| 亚洲一区二区三区四区五区xx| 欧美一区二区黄片| 国内精品伊人久久久久影院对白| 亚洲日韩中文字幕在线播放| 2018中文字幕第一页| 国产乱淫a∨片免费视频| 日韩国产欧美在线观看| 亚洲电影免费观看高清完整版在线观看 | 成人午夜激情网| 黄色污在线观看| 97久久综合精品久久久综合| 亚洲少妇30p| 国产美女扒开尿口久久久| 在线免费观看日韩av| 日本在线中文字幕一区| 亚洲影视在线观看| 91在线播放国产| 91久久国产综合| 欧美一区高清| 日韩一区二区三区高清免费看看| 亚洲午夜精品久久久中文影院av| 欧产日产国产69| 久久久噜噜噜| 亚洲一区999| 久久久久久久久久福利| 校园春色亚洲色图| 国产欧美综合色| 国产精品男女猛烈高潮激情| 老头老太做爰xxx视频| 欧美一区二区麻豆红桃视频| 欧美色综合天天久久综合精品| 日韩欧美精品久久| 亚洲一二区视频| 国产麻豆精品theporn| 美女福利视频一区| 蜜臀aⅴ国产精品久久久国产老师 性活交片大全免费看 | 日韩av大片站长工具| 久久美女高清视频| 青青草国产精品一区二区| 妺妺窝人体色WWW精品| 爽成人777777婷婷| 日韩欧美中文字幕公布| 精品成在人线av无码免费看| 神马久久久久久久久久| 国产欧美精品一区二区三区四区| 国产精品久久久久久久久久| 污污的视频在线免费观看| 黄色一区二区三区四区| 日韩av在线电影网| 超碰在线公开97| 日韩在线视频一区二区三区 | 69视频在线观看免费| 欧美高清视频手机在在线| 欧美一区二区三区白人| 男女激情无遮挡| av久久网站| 亚洲视频 欧洲视频| 国产伦精品一区二区三区高清版| 国产精品va无码一区二区三区| 蜜桃精品视频在线| 国模叶桐国产精品一区| 国产精品久久久视频| 欧美精品入口| 亚洲亚裔videos黑人hd| 911亚洲精选| 青青草原综合久久大伊人精品| 91精品国产福利| 777久久久精品一区二区三区| 色狠狠一区二区三区| 亚洲成a天堂v人片| 杨幂一区欧美专区| 少妇人妻偷人精品一区二区| 亚洲欧洲另类国产综合| 久久精品国产理论片免费| 国产免费不卡av| 国产日韩欧美一区二区三区乱码 | 红桃视频国产精品| 一区二区三区天堂av| 亚洲成a人无码| 99久久综合| 精品视频在线导航| 成年人看片网站| 手机在线一区二区三区| 亚洲欧美在线x视频| 中文字幕avav| 日韩精品一区二区三区免费观影 | 国产亚洲午夜高清国产拍精品| 亚洲一区二区三区xxx视频| 黑人精品无码一区二区三区AV| 国产一区二区三区在线看麻豆| 日本韩国在线不卡| 久久久久99精品| 国产精品一区二区x88av| 国产精品wwwwww| 亚洲GV成人无码久久精品| 懂色av中文一区二区三区| 91免费欧美精品| 亚洲图片中文字幕| 国产精品乱码一区二区三区软件 | 欧美激情第二页| 中文字幕一区电影| 熟女俱乐部一区二区| 国产精品久久久久久久免费软件| 欧美日产国产成人免费图片| 91高清免费观看| 国产一区免费电影| 91美女福利视频高清| 亚洲视频中文字幕在线观看| 国产日韩v精品一区二区| 欧美三级华人主播| 欧美电影免费观看| 色婷婷av一区二区三区软件| 精品欧美一区免费观看α√| 天美av一区二区三区久久| 精品成a人在线观看| 无码人妻久久一区二区三区蜜桃| 自产国语精品视频| 色综合久久天天综线观看| 破处女黄色一级片| 国精品**一区二区三区在线蜜桃| 国产欧美婷婷中文| 最近中文字幕在线免费观看| 国产精品午夜电影| 不卡中文字幕在线| 国产美女亚洲精品7777| 日韩欧美国产系列| 视频免费在线观看| 久久精品123| 国产精品久久久久久久久久久久久久| 波多野结衣视频免费观看| 国产人成一区二区三区影院| 亚洲一卡二卡三卡| 日韩视频在线直播| 精品亚洲va在线va天堂资源站| 手机av免费看| 狠狠色狠狠色综合系列| 亚洲一区二区三区sesese| 丰满人妻一区二区| 色久优优欧美色久优优| 亚洲欧美自拍另类日韩| 欧美激情无毛| 2020国产精品视频| 最近国语视频在线观看免费播放| 亚洲乱码国产乱码精品精的特点| 青青在线视频免费观看| 亚洲婷婷影院| 久久久精品999| 国产午夜小视频| 国产欧美综合在线| 国产欧美久久久久| 在线看成人短视频| 久久精品视频99| 国产成人在线观看网站| 国产精品女同一区二区三区| 国产精品第157页| 欧美日韩国产在线观看网站| 美女视频久久黄| 五月婷婷激情网| 日韩精品一区二区av| 国产精品网站在线| 奇米影视亚洲色图| 99精品小视频| 欧美一区二区影院| av手机免费看| 91福利区一区二区三区| 亚洲黄色小说在线观看| 男男成人高潮片免费网站| www.久久艹| 免费成人高清在线视频| 亚洲精品久久久久久久久| a级大片在线观看| 国产精品亚洲а∨天堂免在线| 久久五月天婷婷| 深夜福利一区| 日韩专区在线观看| 国产一级片毛片| 亚洲黄色免费电影| 天天爽夜夜爽一区二区三区| 亚洲欧洲另类| 亚洲在线一区二区| 69堂精品视频在线播放| 日韩风俗一区 二区| 美女的奶胸大爽爽大片| 国产精品免费久久久久| 精品中文字幕av| 亚洲精品视频啊美女在线直播| 91久久精品美女高潮| 78精品国产综合久久香蕉| 日韩大陆毛片av| 精品少妇爆乳无码av无码专区| 国产精品久久夜| 日韩欧美黄色大片| 久久久精品五月天| 精品乱码一区二区三区| 国产精品白丝av嫩草影院| 久久国产精品99国产精| 91成品人影院| 欧美日韩国产大片| 国产91丝袜美女在线播放| 久久久久99精品一区| 欧美精品一区免费| 国产精品日韩精品欧美精品| 国产精品乱子乱xxxx| 超碰成人免费| 欧美国产视频一区二区| 国产福利资源在线| 日韩午夜电影在线观看| 麻豆国产尤物av尤物在线观看| 亚洲女厕所小便bbb| 伊人精品视频在线观看| 国产麻豆91精品| 国产91在线亚洲| 亚洲网站视频| 国产伦一区二区三区色一情| 老牛精品亚洲成av人片| 97国产精品久久| 天天爽夜夜爽夜夜爽| 亚洲精品720p| 综合网在线观看| 91久久精品一区二区| 在线观看日本中文字幕| 国产蜜臀97一区二区三区| 久久综合伊人77777麻豆最新章节| 水野朝阳av一区二区三区| 神马一区二区影院| 欧美疯狂party性派对| 亚洲伊人成综合成人网| 亚洲精品一二三**| 久久久久这里只有精品| 午夜av入18在线| 亚洲一区第一页| 夜夜爽8888| 日韩欧美一区中文| 久久久久97国产| 天天av天天翘天天综合网| 大黑人交xxx极品hd| 国产午夜精品久久久久久免费视 | 日韩电影精品| 欧美成人免费全部| 欧美亚洲精品在线观看| 亚洲色图欧美制服丝袜另类第一页 | 亚洲黄色影片| 欧美精品一区在线| 久久影视一区| 超碰97网站| 国产成人手机高清在线观看网站| 国产精品丝袜久久久久久不卡| 精品国产亚洲日本| 91av在线国产| 亚洲精品777| 韩国福利视频一区| 午夜小视频免费| xxx成人少妇69| 乱精品一区字幕二区| 亚洲图片制服诱惑| www.桃色av嫩草.com| 精品爽片免费看久久| 99国产精品一区二区三区 | 久久夜色精品亚洲噜噜国产mv| 蜜桃av噜噜一区二区三区麻豆| 亚洲欧美日韩在线高清直播| 国产99久久九九精品无码免费| 亚洲免费一在线| av一区二区三| 国产亚洲欧美日韩一区二区| www.五月婷婷| 最近2019中文字幕第三页视频 | 欧美色精品在线视频| 毛片a片免费观看| 在线免费av一区| 五月天婷婷丁香| 欧美妇女性影城| 免费av网站在线| 日韩精品一区二区三区视频在线观看| 亚洲s码欧洲m码国产av| 亚洲精品在线观看视频| 91精品国产乱码久久久| 亚洲人成啪啪网站| 手机在线精品视频| 欧美裸体xxxx极品少妇| a屁视频一区二区三区四区| 国产91ⅴ在线精品免费观看| 中文久久电影小说| 成人精品福利视频| 全球成人免费直播| 欧美日韩亚洲免费| 亚洲黄色影片| 亚洲精品蜜桃久久久久久| 国产乱色国产精品免费视频| www.日本一区| 国产欧美日韩精品一区| av无码av天天av天天爽| 亚洲成人av福利| 国产精品第九页| 精品国产免费一区二区三区四区 | 亚洲男人天堂2019| 色婷婷av一区二区三区之红樱桃 | 国产视频精品视频| 亚洲精品大片www| 永久免费看mv网站入口| 欧美日韩www| 亚洲一线在线观看| 丝袜情趣国产精品| 精品九九久久| 国产女人18毛片水18精品| av中文一区| 色综合电影网| 久久99久久99| 精品亚洲视频在线| 亚洲婷婷综合色高清在线| 国产精品成人69xxx免费视频| 欧美日韩国产综合一区二区三区| 美女黄页在线观看| 久久精品久久久久久国产 免费| 91精品亚洲一区在线观看| 91免费观看网站| 国产精品va| 熟女少妇在线视频播放| 久久久国产精品午夜一区ai换脸| 亚洲永久精品ww.7491进入| 91极品美女在线| 中文字幕乱码一区二区| www.99久久热国产日韩欧美.com| 91丨精品丨国产| av在线亚洲男人的天堂| 亚洲黄网站黄| 日韩亚洲在线视频| 国产精品成人免费精品自在线观看| 少妇高潮一区二区三区喷水| 日韩一级大片在线| 欧美一级做性受免费大片免费| 国产精品视频xxx| 国内精品久久久久久久影视简单| 欧美尤物一区| 捆绑调教一区二区三区| 深爱五月综合网| 亚洲成人在线网站| 久久久久久不卡| 日韩中文字幕在线精品| 一级毛片精品毛片| 久久精品一区二区三区不卡免费视频| 久久一区亚洲| 青娱乐精品在线| 欧美视频二区36p| 中文在线最新版天堂| 久久99精品视频一区97| 日韩精品社区| 亚洲成人自拍| 成人精品在线视频观看| 在哪里可以看毛片| 日韩一区二区三区视频| 亚洲最大成人| 国产一区二区丝袜| 亚洲久久在线| 中国黄色片免费看| 亚洲国产va精品久久久不卡综合| 欧美黄色一级大片| 欧美福利小视频| av一区二区在线播放| www.日本在线视频| 亚洲国产精品v|