跳转到主内容
极星编程网:以代码为星,赴技术山海!

一个常用的正则表达验证类_PHP教程

一个常用的正则表达验证类很早以前写的一个正则表达式验证工具类,包含了一些常见的校验和支持自定义的正则表达式匹配,可以选择完全匹配,也可以获取所有匹配项。曾用它仿造eclispe下的正则表达式插件写过一个工具。因为最近突然有几个朋友都在问这方面的问题,干脆就把代码贴出来好了。

using System;02.using System.Collections;03.using System.Text.RegularExpressions;

04.

05.namespace Xrinehart.Framework.Common.Validate

06.{

07. /**////

08. /// RegularMatch 的摘要说明。09. /// 10. public class RegularMatch

11. {

12. private string _String;13. private bool _IsEntirety;

14.

15. /**////

16. /// 可以进行判断的类型17. /// 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. /**////

36. /// 用于判断字符串是否是对应类型37. ///

38. ///

String,需要判断的字符串

39. ///

Operation枚举,用于选择需要进行的操作

40. ///

Boolean,判断是完全匹配还是包含匹配模式(仅适用于非类型判断时)

41. ///

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();

124124. }

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. /**////

165. /// 是否Byte类型(8 位的无符号整数): 0 和 255 之间的无符号整数166. ///

167. ///

Boolean 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. /**////

184. /// 是否SByte类型(8 位的有符号整数): -128 到 +127 之间的整数185. ///

186. ///

Boolean 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. /**////

203. /// 是否Int16类型(16 位的有符号整数): -32768 到 +32767 之间的有符号整数204. ///

205. ///

Boolean 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. /**////

222. /// 是否Int32类型(32 位的有符号整数):-2,147,483,648 到 +2,147,483,647 之间的有符号整数223. ///

224. ///

Boolean 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. /**////

241. /// 是否Int64类型(64 位的有符号整数): -9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807 之间的整数242. ///

243. ///

Boolean 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. /**////

260. /// 是否Single类型(单精度(32 位)浮点数字): -3.402823e38 和 +3.402823e38 之间的单精度 32 位数字261. ///

262. ///

Boolean 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. /**////

279. /// 是否Double类型(单精度(64 位)浮点数字): -1.79769313486232e308 和 +1.79769313486232e308 之间的双精度 64 位数字280. ///

281. ///

Boolean 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. /**////

298. /// 是否Double类型(单精度(64 位)浮点数字): -1.79769313486232e308 和 +1.79769313486232e308 之间的双精度 64 位数字299. ///

300. ///

Boolean 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. /**////

317. /// 是否Char类型(Unicode(16 位)字符):该 16 位数字的值范围为从十六进制值 0x0000 到 0xFFFF318. ///

319. ///

Boolean 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. /**////

336. /// 是否Char类型(96 位十进制值):从正 79,228,162,514,264,337,593,543,950,335 到负 79,228,162,514,264,337,593,543,950,335 之间的十进制数337. ///

338. ///

Boolean 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. /**////

355. /// 是否DateTime类型(表示时间上的一刻): 范围在公元(基督纪元)0001 年 1 月 1 日午夜 12:00:00 到公元 (C.E.) 9999 年 12 月 31 日晚上 11:59:59 之间的日期和时间356. ///

357. ///

Boolean 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. /**////

374. /// 是否Date类型(表示时间的日期部分): 范围在公元(基督纪元)0001 年 1 月 1 日 到公元 (C.E.) 9999 年 12 月 31 日之间的日期375. ///

376. ///

Boolean 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. /**////

401. /// 是否Time类型(表示时间部分HHMMSS): 范围在夜 12:00:00 到晚上 11:59:59 之间的时间402. ///

403. ///

Boolean 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. /**////

428. /// 是否IPAddress类型(IPv4 的情况下使用以点分隔的四部分表示法格式表示,IPv6 的情况下使用冒号与十六进制格式表示)429. ///

430. ///

Boolean 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. /**////

447. /// 是否中国电话号码类型(XXX/XXXX-XXXXXXX/XXXXXXXX (/d{3,4})-?/d{7,8}):判断是否是(区号:3或4位)-(电话号码:7或8位)448. ///

449. ///

Boolean 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. /**////

459. /// 是否中国邮政编码(6位数字 /d{6})460. ///

461. ///

Boolean 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. /**////

471. /// 是否中国移动电话号码(13开头的总11位数字 13/d{9})472. ///

473. ///

Boolean 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. /**////

483. /// 是否EMail类型(XXX@XXX.XXX /w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*)484. ///

485. ///

Boolean 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. /**////

495. /// 是否Internet URL地址类型(http://)496. ///

497. ///

Boolean 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. /**////

507. /// 是否中文字符([/u4e00-/u9fa5])508. ///

509. ///

Boolean 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. /**////

519. /// 是否是数字(0到9的数字[/d]+):不包括符号"."和"-"520. ///

521. ///

Boolean 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. /**////

531. /// 是否只包含数字,英文和下划线([/w]+)532. ///

533. ///

Boolean 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. /**////

543. /// 是否大写首字母的英文字母([A-Z][a-z]+)544. ///

545. ///

Boolean 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. /**////

555. /// 是否全角字符([^/x00-/xff]):包括汉字在内556. ///

557. ///

Boolean 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. /**////

567. /// 是否半角字符([^/x00-/xff]):包括汉字在内568. ///

569. ///

Boolean 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. /**////

607. /// 通用正则表达式判断函数608. ///

609. ///

String,用于匹配的字符串

610. ///

String,正则表达式

611. ///

RegexOptions,配置正则表达式的选项

612. ///

ArrayList,分解的字符串内容

613. ///

Boolean,是否需要完全匹配

614. ///

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

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.}

http://www.bkjia.com/PHPjc/953965.html www.bkjia.com true http://www.bkjia.com/PHPjc/953965.html TechArticle一个常用的正则表达验证类 很早以前写的一个正则表达式验证工具类,包含了一些常见的校验和支持自定义的正则表达式匹配,可以选择完...

相关文章