Nel 1981, i numeri di identificazione del veicolo (VIN) sono stati standardizzati utilizzando un sistema di diciassette cifre. Prima del 1981, i produttori utilizzati VIN unica per la propria azienda e non c'era standard accettato per questi numeri, in modo da diversi produttori utilizzati formati differenti .. http://www.crankshaftcoalition.com/wiki/VIN_decodingRegEx Vin Validation per pre 1980 e post 1980
E 'richiesto a tutti over-the-road-veicoli venduti a contenere un VIN di 17 caratteri, che non include le lettere I (i), O (o) o Q (q) (per evitare confusione con i numeri 1 e 0). http://en.wikipedia.org/wiki/Vehicle_identification_number
Quindi quello che sto cercando di realizzare è avere un menu a discesa e se ovunque 1980-1900 è stato scelto il VIN sarà o seguire le linee guida dei manufatti o semplicemente si applica a tutti in cui le lettere I (I) , O (o) o Q (q) potrebbero essere utilizzati e qualsiasi numero di caratteri/numeri. Ma poi se 1981 e dopo viene scelto il RegEx per dare il via e chiedere che sia formattato con l'espressione che ho mostrato un VIN valido o invalido.
inserito un VIN valido per il momento a scopo di test .. se si elimina l'ultimo numero mostrerà "non valido Vin"
qualsiasi suggerimento o aiuto sarebbe molto apprezzato!
http://jsfiddle.net/ommLz4th/1/
RegExp
^[A-HJ-NPR-Z\\d]{8}[\\dX][A-HJ-NPR-Z\\d]{2}\\d{6}$
jQuery Validator Vin
$(function() {
$("#vin").on("keyup blur", function() {
if (validateVin($("#vin").val())) {
$("#result").css('color', 'green').html("Valid VIN");
$("#vin").removeClass("not-ok").addClass("ok");
} else {
$("#result").css('color', 'red').html("Invalid VIN");
$("#vin").removeClass("ok").addClass("not-ok");
}
});
});
function validateVin(vin) {
var re = new RegExp("^[A-HJ-NPR-Z\\d]{8}[\\dX][A-HJ-NPR-Z\\d]{2}\\d{6}$");
return vin.match(re);
}
HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<label name="vin">VIN</label>
<input type="text" id="vin" value="1FAFP40634F172825" />
<span id="result"></span>
Drop Down per scopi di test
<select name="vehicleyear" id="vehicleyear">
<option value="">Choose Year</option>
<option value="1985">1985</option>
<option value="1984">1984</option>
<option value="1983">1983</option>
<option value="1982">1982</option>
<option value="1981">1981</option>
<option value="1980">1980</option>
<option value="1979">1979</option>
<option value="1978">1978</option>
<option value="1977">1977</option>
<option value="1976">1976</option>
<option value="1975">1975</option>
<option value="1974">1974</option>
</select>
Actual goccia giù
<cfparam name="form.vehicleyear" default="">
<cfset VARIABLES.y1=DatePart("yyyy",Now())>
<cfset VARIABLES.y2=VARIABLES.y1+2>
<cfif Val(form.vehicleyear) LT VARIABLES.y1 or Val(form.vehicleyear) GT VARIABLES.y2>
</cfif>
<cfoutput>
<cfselect name="vehicleyear" id="vehicleyear" required="yes" message="Please select vehicle year.">
<option value="" selected="selected">Select Year</option>
<cfloop index="i" from="#VARIABLES.y2#" to="1900" step="-1">
<option value="#i#"<cfif form.vehicleyear EQ i> selected</cfif>>#NumberFormat(i,"0000")#</option>
</cfloop>
</cfselect>
</cfoutput>
Avrete un diavolo di tempo per convalidare la cifra di controllo su 1981- VIN tramite regex. Consiglio vivamente [Wikipedia] (http://en.wikipedia.org/wiki/Vehicle_identification_number) come riferimento su questo argomento. –
Intendi veramente "1980 - 1900"? –
Fondamentalmente 1980 - (la prima auto mai realizzata) hahaha ... Non posso perdermi un anno, Sì, so che la Model T ha fatto il suo debutto nel 1908 :) –