It's about sharing!
Idcode18 = {validate: function (value) {If (value. length! = 18) return false; VaR value = value. tolowercase (); var sum = 0, V = '10x98765432', W = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2], A = '11, 12, 13, 22, 31, 45, 46, 50, 51,, 61, 64, 65, 81, '; var Re = value. match (/^ (\ D {2}) \ D {4} (\ D {4}) (\ D {2}) (\ D {2 }) \ D {3} [x \ D] $/); If (RE = NULL |. indexof (Re [1]) <0) return false; If (! This. _ validatedate (Re [2], re [3], re [4]) return false; For (VAR I = 0; I <17; I ++) sum + = value. charat (I) * W [I]; return value. charat (17) = v. charat (sum % 11) ;}, getbirth: function (value, FMT) {If (! This. validate (value) return ''; FMt = FMT | 'yyyy-mm-dd'; var y = value. substr (6, 4), M = value. substr (10, 2), D = value. substr (12, 2); Return FMT. replace ('yyyy', Y ). replace ('mm', m ). replace ('M', parseint (M, 10 )). replace ('dd', D ). replace ('D', parseint (D, 10) ;}, getsex: function (value) {If (! This. Validate (value) return ''; return value. substr (16, 1) % 2 = 0? 'Femal': 'male';}, _ validatedate: function (Y, M, d) {var dd = new date (Y, parseint (M, 10)-1, parseint (D, 10); Return DD. getfullyear () = Y & DD. getmonth () + 1 = parseint (M, 10) & DD. getdate () = parseint (D, 10 );}}