ورود

View Full Version : بررسی صحیح بودن عدد در جاوا اسکرپت



sonixax
یک شنبه 29 خرداد 1390, 21:23 عصر
سلام به همگی ، من یک کد جاوا دارم که با isNaN چک میکنه که آیا ورودی عدد هست یا خیر .
حالا مشکل اینجاست که من میخوام بتونم اعداد منفی رو هم بهش حالی کنم ، یعنی بازه ی اعداد صحیح البته به جز 0 .
از isInt استفاده کردم ولی کد کار نکرد ! یعنی به کل از کار افتاد !
کسی میدونه چاره چیه ؟
این هم کد :


function stock_alert(curr_row)
{
var stock=getObj("qtyInStock"+curr_row).innerHTML;
var qty=getObj("qty"+curr_row).value;
if (!isNaN(qty))
{
if(eval(qty) > eval(stock))
getObj("stock_alert"+curr_row).innerHTML='<font color="red" size="1">'+alert_arr.STOCK_IS_NOT_ENOUGH+'</font>';
else
getObj("stock_alert"+curr_row).innerHTML='';
}
else
getObj("stock_alert"+curr_row).innerHTML='<font color="red" size="1">'+alert_arr.INVALID_QTY+'</font>';
}

mrbm_2007
دوشنبه 30 خرداد 1390, 13:31 عصر
اگر qty از نوع رشته (string) باشه باید اول به عدد تبدیل بشه و isInt نوع متغیر رو چک میکنه. مثلا "1" از نوع رشته است و isInt ،ا false برمیگردونه

mrbm_2007
دوشنبه 30 خرداد 1390, 13:33 عصر
برای این کار از تابع IsNumeric() استفاده کن
function IsNumeric(input)
{
return (input - 0) == input && input.length > 0;
}

این هم مثالش

IsNumeric('-1.5') => true
IsNumeric('0') => true
Isnumeric('.42') => true
IsNumeric('1.2.3') => *false*
IsNumeric('') => *false*
IsNumeric('blah') => *false*


http://stackoverflow.com/questions/18082/validate-numbers-in-javascript-isnumeric

کد بالا فقط عدد بودن رو چک میکنه و کاری به صحیح بودن اون نداره ولی کد زیر صحیح بودنش رو هم چک میکنه
function IsNumeric(input)
{
return Math.floor(input) == input && input.length > 0;
}
البته با یه دستکاری کوچیک میتونی صفر رو هم حذف کنی