Czy ktoś kiedykolwiek stworzył VIN Validator? Próbuję utworzyć pole tekstowe, w którym użytkownik wprowadzi numer identyfikacyjny pojazdu, a następnie JS/jQuery sprawdzi poprawność, jeśli jest poprawny lub nie, na wypadek gdyby błędnie podał numer.JavaScript/jQuery VIN Validator
Jestem bardzo nowy w JS/jQuery i znalazłem kilka przykładów, ale oczywiście nie były w stanie sprawić, by działały poprawnie ... Każdy, kto ma jakieś pomysły lub sugestie, byłby bardzo doceniany, szczególnie jeśli potrafisz powiedz mi, jak skonfigurować to, co mam poniżej, aby działało poprawnie!
Uwaga: isVin() function uprzejmości cflib.org
HTML:
<label name="vin">VIN</label>
<input type="text" name="vin" />
ColdFusion:
<cfscript>
/**
* US Vehicle Identification Number (VIN) validation.
* version 1.0 by Christopher Jordan
* version 1.1 by RHPT, Peter Boughton & Adam Cameron (original function rejected valid VINs)
*
* @param v VIN to validate (Required)
* @return Returns a boolean.
* @author Christopher Jordan ([email protected])
* @version 1, February 19, 2013
*/
function isVIN(v) {
var i = "";
var d = "";
var checkDigit = "";
var sum = 0;
var weights = [8, 7, 6, 5, 4, 3, 2, 10, 0, 9, 8, 7, 6, 5, 4, 3, 2];
var transliterations = {
a = 1, b = 2, c = 3, d = 4, e = 5, f = 6, g = 7, h = 8,
j = 1, k = 2, l = 3, m = 4, n = 5, p = 7, r = 9,
s = 2, t = 3, u = 4, v = 5, w = 6, x = 7, y = 8, z = 9
};
var vinRegex = "(?x) ## allow comments
^ ## from the start of the string
## see http://en.wikipedia.org/wiki/Vehicle_Identification_Number for VIN spec
[A-Z\d]{3} ## World Manufacturer Identifier (WMI)
[A-Z\d]{5} ## Vehicle decription section (VDS)
[\dX] ## Check digit
[A-Z\d] ## Model year
[A-Z\d] ## Plant
\d{6} ## Sequence
$ ## to the end of the string
";
if (! REFindNoCase(vinRegex, arguments.v)) {
return false;
}
for (i = 1; i <= len(arguments.v); i++) {
d = mid(arguments.v, i, 1);
if (! isNumeric(d)) {
sum += transliterations[d] * weights[i];
} else {
sum += d * weights[i];
}
}
checkDigit = sum % 11;
if (checkDigit == 10) {
checkDigit = "x";
}
return checkDigit == mid(arguments.v, 9, 1);
}
</cfscript>
Code Test:
<cfoutput>
<cfset vin = "1GNDM19ZXRB170064">
#vin#: #isVin(vin)#<br />
<cfset vin = "1FAFP40634F172825">
#vin#: #isVin(vin)#<br />
</cfoutput>
Jeśli twój kod nie działa, opisz dokładnie, w jaki sposób nie działa. Czy powoduje to komunikaty o błędach? Złe odpowiedzi? Brak odpowiedzi? – Pointy
'writeOutput (" # vin #: #isVin (vin) #
");' wygląda dziwnie – epascarello
'' oznacza, że został stworzony dla ColdFusion i nie zadziała, jeśli po prostu umieścisz go na swojej stronie. –
Spokey