Webアプリケーションを作成しています。ここでは、入力としてさまざまな数値を取得する必要があります。
例:1-10、0-100など。
以下は、範囲を変数「s」に入れて表示するために使用するコードです。また、#ucodeは、入力を取得するために使用するテキストボックスのIDです。
//JavaScript
function validate() {
var i = $("#ucode").val(); //input
i = i.replace(/ /,'');
var constraint = /([0-9]+[,-])?[0-9]+$/;
if(!constraint.test(i))
{
alert("Invalid Expression");
return;
}
var a = i.split(","); //split and array
var s = ""; //output string
if(a != "")
{
for(n = 0; n < a.length; ++n )
{
var conh = /^[0-9]-[0-9]$/;
var conc = /^[0-9]+$/;
if(conh.test(a[n]))
{
var range = a[n].split("-");
var ll = parseInt(range[0]); //lower limit
var ul = parseInt(range[1]); //upper limit
if(ul < ll) { alert("Invalid Expression"); return; }
for(m = ll; m <= ul; ++m)
s += " " + m;
}
}
alert(s); // Alert output
}
}
問題は、この関数が1〜9の範囲で機能し、それを超えないことです。
1〜9を与えると、
1 2 3 4 5 6 7 8 9
1-2,5-9を与えると、
1 2 5 6 7 8 9
しかし、9を超えて、つまり1-10または5-45を与えると、blank
アラートメッセージが表示されます。
私はどこが間違っていますか?よろしくお願いします