2009-09-09 22 views
5

Tôi đang sử dụng sự kiện onkeyup trên một trường biểu mẫu trong JavaScript và tôi muốn kiểm tra xem phím được nhấn có phải là chữ số hay không - ví dụ: 0 - 9, vì vậy tôi có thể làm điều gì đó với đầu vào.Javascript: Làm cách nào để kiểm tra xem phím được nhấn vào trường biểu mẫu có phải là một chữ số (0 - 9) không?

<input type="text" onkeyup="" /> 

Tôi có cần sử dụng Regex cho điều này không?

Cảm ơn

Trả lời

-1

Xem này:

http://www.javascriptkit.com/javatutors/javascriptkey2.shtml

<script type="text/javascript"> 
function displayunicode(e){ 
var unicode=e.keyCode? e.keyCode : e.charCode 
if unicode >= 48 && unicode <= 57 { 
    alert('number') 
} 
else{ 
} 
    alert('nonnumber') 
} 
</script> 
<form> 
<input type="text" size="2" maxlength="1" onkeyup="displayunicode(event); this.select()" /> 
</form> 
+0

Điều này là không chính xác, bạn phải chèn thêm chúng số numpad. http://www.cambiaresearch.com/articles/15/javascript-key-codes – Asterius

+0

Điều đó không đúng. nó không xử lý các khóa numpad –

1

tôi đã sử dụng các chức năng sau đây để kiểm tra xem một chuỗi cho trước là số hay không

// Validate Numeric inputs 
function isNumber(o) { 
    return o == '' || !isNaN(o - 0); 
} 

Giả sử rằng mã chìa khóa của bạn trên KeyUp hoặc sự kiện KeyDown là trong keyCode biến:

var keyCode = e.keyCode || e.which; 
if (keyCode >= 96 && keyCode <= 105) { 
     // Numpad keys 
     keyCode -= 48; 
} 
console.log(isNumber(String.fromCharCode(keyCode))); 
0

Sử dụng event.key để nhận giá trị thực. Để kiểm tra xem số nguyên, chỉ cần sử dụng isFinite

input.addEventListener("keydown", function(event) { 
    const isNumber = isFinite(event.key); 
}); 

Một giải pháp HTML dễ dàng hơn sẽ được sử dụng number loại đầu vào. Nó hạn chế chỉ số (loại).

<input type="number"> 

Dù bằng cách nào, bạn nên làm sạch tất cả các đầu vào người dùng với:

string.replace(/[^0-9]/g,''); 
0

chỉ cho phép 0-9, chữ cái khác sẽ bị nuốt.

$('#id').keypress(function (e) { 
      var validkeys = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']; 
      if (validkeys.indexOf(e.key) < 0) 
       return false; 
     }); 
Các vấn đề liên quan