chache/utils/vin.js
2024-01-16 22:53:42 +08:00

81 lines
1.4 KiB
JavaScript

var r = new Array(),
t = new Array();
(r.A = 1),
(r.B = 2),
(r.C = 3),
(r.D = 4),
(r.E = 5),
(r.F = 6),
(r.G = 7),
(r.H = 8),
(r.J = 1),
(r.K = 2),
(r.L = 3),
(r.M = 4),
(r.N = 5),
(r.P = 7),
(r.R = 9),
(r.S = 2),
(r.T = 3),
(r.U = 4),
(r.V = 5),
(r.W = 6),
(r.X = 7),
(r.Y = 8),
(r.Z = 9),
(r[1] = 1),
(r[2] = 2),
(r[3] = 3),
(r[4] = 4),
(r[5] = 5),
(r[6] = 6),
(r[7] = 7),
(r[8] = 8),
(r[9] = 9),
(r[0] = 0),
(t[1] = 8),
(t[2] = 7),
(t[3] = 6),
(t[4] = 5),
(t[5] = 4),
(t[6] = 3),
(t[7] = 2),
(t[8] = 10),
(t[9] = 0),
(t[10] = 9),
(t[11] = 8),
(t[12] = 7),
(t[13] = 6),
(t[14] = 5),
(t[15] = 4),
(t[16] = 3),
(t[17] = 2),
(exports.validateVIN = function (a) {
var e = !1,
s = !1;
if (isNaN(a) && 17 == a.length) {
var n = 0,
i = 0,
u = r,
f = t;
try {
for (var v = 0; v < a.length; v++) {
if (
-1 == "ABCDEFGHJKLMNPRSTUVWXYZ1234567890".indexOf(a.substr(v, 1))
) {
s = !1;
break;
}
(s = !0), (n += parseInt(u[a.substr(v, 1)]) * parseInt(f[v + 1]));
}
s
? (10 == (i = n % 11) ? "X" : i.toString()) == a.substr(8, 1) &&
(e = !0)
: (e = !1);
} catch (r) {
e = !1;
}
}
return e;
});