Saturday, January 1, 2011

JavaScript: IsNumeric, isNumber ยอมให้กรอกเฉพาะตัวเลขเท่านั้น

JavaScript มีฟังก์ชั่น IsNumeric() อยู่แล้ว สำหรับเช็คค่าว่าต้องเป็นตัวเลขเท่านั้น แต่มันไม่เวิร์คสำหรับบางเคส เช่น
// Whitespace strings:
IsNumeric(' ') == true;
IsNumeric('\t\t') == true;
IsNumeric('\n\r') == true;

// Number literals:
IsNumeric(-1) == false;
IsNumeric(0) == false;
IsNumeric(1.1) == false;
IsNumeric(8e5) == false;

เราเขียนฟังก์ชั่นเองก็ได้ เช็คได้ถูกต้องกว่าต้นฉบับอีก


function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}