Następująca kontrola polega na sprawdzeniu kodu produktu złożonego z 35 znaków składających się z liter A-F i cyfr 0-9, a także trzech kresek ("-"). Przykładem ważnego kodu poz byłoby to: 16FA860F-E86A457B-A28A238B-2ACA6E3DKonieczność przejścia warunku, jeśli długość jest zerowa
//Checks the item code to see if it meets requirements
if($("#input").val().length > 35) {
$("#errorLogContent").prepend("The item code <font color='#FFFFFF'>" + itemCode + "</font> is too long.<br>");
$("#ise").each(function(){
this.reset();
});
}
else if($("#input").val().length < 35) {
$("#errorLogContent").prepend("The item code <font color='#FFFFFF'>" + itemCode + "</font> is too short. Be sure to include dashes.<br>");
$("#ise").each(function(){
this.reset();
});
}
else if($("#input").val().match(/([^A-Fa-f0-9-]+)/gm)) {
$("#errorLogContent").prepend("The item code <font color='#FFFFFF'>" + itemCode + "</font> contains invalid characters.<br>");
$("#ise").each(function(){
this.reset();
});
}
else if($("#input").val().match(/[-]/g, "").length > 3) {
$("#errorLogContent").prepend("The item code <font color='#FFFFFF'>" + itemCode + "</font> is an invalid format. Please only use 3 dashes.<br>");
$("#ise").each(function(){
this.reset();
});
}
else if($("#input").val().match(/[-]/g, "").length < 3) {
$("#errorLogContent").prepend("The item code <font color='#FFFFFF'>" + itemCode + "</font> is an invalid format. Please include 3 dashes.<br>");
$("#ise").each(function(){
this.reset();
});
}
else {
//Rest of my code
}
Poniższe działa dobrze, z wyjątkiem jeśli kod pozycja to 35 znaków, ale nie zawiera żadnych kresek. Jeśli zawiera 1 lub 2 kreski, to ten kod go przechwytuje, ale jeśli zawiera 0, to po prostu się zawiesza i nic nie robi. Próbowałem prawie wszystkiego, ale nie mogę się zorientować, jakie może być rozwiązanie. Ponieważ długość jest null, to po prostu hangs.The część, która powinna być manipulowane jakoś to:
else if($("#input").val().match(/[-]/g, "").length > 3) {
$("#errorLogContent").prepend("The item code <font color='#FFFFFF'>" + itemCode + "</font> is an invalid format. Please only use 3 dashes.<br>");
$("#ise").each(function(){
this.reset();
});
}
else if($("#input").val().match(/[-]/g, "").length < 3) {
$("#errorLogContent").prepend("The item code <font color='#FFFFFF'>" + itemCode + "</font> is an invalid format. Please include 3 dashes.<br>");
$("#ise").each(function(){
this.reset();
});
}
Jestem pewien, że rozwiązanie jest łatwe, ale jestem zakłopotany.
EDYCJA: Oto jak mam wszystko rozmieszczone w większości, z wyjątkiem CSS. http://jsfiddle.net/86KcG/1/
Wygląda na to, że komplikujesz to. Czy format jest zawsze taki sam? To znaczy, czy '-' zawsze znajduje się w tej samej pozycji? Jedno wyrażenie regularne wykona zadanie ... –
który warunek powinien zostać włączony, jeśli długość wynosi 35? – charlietfl
@Michael Tak, ale nie martwię się o to teraz, choć byłoby miło. Skupiam się na upewnieniu się, że zawsze są trzy kreski w kodzie, a jeśli nie, daj komunikat o błędzie.Działa, jeśli jest tylko 1 lub 2, ale jeśli ich nie ma, to nic nie robi. –