2011-04-30 43 views
36

Tôi muốn giới hạn một số giữa hai giá trị, tôi biết rằng trong PHP bạn có thể làm điều này:Tôi làm cách nào để sử dụng JavaScript để giới hạn số giữa giá trị tối thiểu/tối đa?

$number = min(max(intval($number), 1), 20); 
// this will make $number 1 if it's lower than 1, and 20 if it's higher than 20 

Làm thế nào tôi có thể làm điều này trong javascript, mà không cần phải viết nhiều if báo cáo và các công cụ như vậy? Cảm ơn.

Trả lời

67

như thế này

var number = Math.min(Math.max(parseInt(number), 1), 20); 
+0

làm Javascript có là ' hàm intval (num) '. Vì tôi chỉ biết 'parseInt (num)'? –

+0

Tôi không biết về php xin lỗi tôi chỉnh sửa mà tôi xem xét nó như là người dùng định nghĩa chức năng –

+1

Bây giờ câu trả lời của chúng tôi là giống hệt nhau vì vậy tôi đang xóa của tôi. –

0

Sử dụng Math.minMath.max.

0

Bạn có ít nhất hai lựa chọn:

Bạn có thể sử dụng một cặp các nhà khai thác có điều kiện (? :):

$number = $number > 100 ? 100 : $number < 0 ? 0 : $number; 

Hoặc bạn có thể kết hợp Math.maxMath.min :

$number = Math.min(100, Math.max(0, $number)); 

Trong cả hai trường hợp, nó là tương đối dễ dàng để gây nhầm lẫn cho mình, vì vậy bạn có thể xem xét việc có một chức năng hữu ích nếu bạn làm điều này ở nhiều nơi:

function clamp(val, min, max) { 
    return = val > max ? max : val < min ? min : val; 
} 

Sau đó:

$number = clamp($number, 0, 100); 
Các vấn đề liên quan