以下は、文字A〜Fと数字0〜9と3つのダッシュ( " - ")からなる35文字で入力された項目コードをチェックします。有効な項目のコードの例は、このようになります:16FA860F-E86A457B-A28A238B-2ACA6E3D長さがNULLの場合、条件を渡す必要があります
//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
}
次の項目コードは35文字の長さが、ないダッシュが含まれていない場合を除いて、うまく動作します。 1つまたは2つのダッシュが含まれている場合、このコードはキャッチしますが、0が含まれている場合はハングして何もしません。私はすべてを試しましたが、解決策が何であるか把握していないようです。長さがnullであるので、それは何らかの形で微調整する必要があるだけでhangs.The部分はこれです:
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();
});
}
私は解決策は簡単なものであると確信しているが、私は困惑します。
編集:ここでは、CSSを除いて、すべての部分がレイアウトされています。 http://jsfiddle.net/86KcG/1/
これを過度に複雑にしているように見えます。フォーマットは常に同じですか?つまり、 ' - 'は常に同じ位置にありますか? 1つの正規表現が仕事をします... –
長さが35の場合、どの状態に入るべきですか? – charlietfl
@マイケルはい、しかし、私はあまりいいとは思いますが、今はそれをチェックすることについてあまり心配していません。私は、コードに常に3つのダッシュがあることを確認することに焦点を当てています。もしそうでなければ、エラーメッセージを出してください。1または2しかない場合は機能しますが、存在しない場合は何もしません。 –