как работать с валидаторами диапазона?

Я хочу определить функцию для проверки диапазона с помощью java-скрипта. Я определяю его, но он работает только для целых чисел. мой вопрос в том, что может быть в минимальном и максимальном значении? как проверить минимальное и максимальное значение, являются ли они строковыми или другими типами?
вот моя функция:

function minmax(value) {
var min = document.getElementById("min_val").value;  
var max = document.getElementById("max_val").value;
if (min <= max) {
    if (parseInt(value) < min || isNaN(value)) {
        alert("input shouldn't less than  " + min);
    }
    else if (parseInt(value) > max) {
        alert("input shouldn't more than  " + max);
    }
}
else
    alert("The MaximumValue cannot be less than the MinimumValue  of RangeValidator");

}


person Angel    schedule 27.06.2013    source источник
comment
Разве вы не можете использовать встроенные валидаторы asp.net?   -  person Claudio Redi    schedule 28.06.2013
comment
Нет, я должен сам создать валидатор диапазона.   -  person Angel    schedule 28.06.2013
comment
@Ангел - хорошо, дай нам знать, как получится...   -  person Karl Anderson    schedule 28.06.2013
comment
@Karl: хорошо, спасибо за помощь   -  person Angel    schedule 28.06.2013


Ответы (1)


Обычный старый JavaScript использует оператор typeof для определения базового типа переменной или значения и возвращает строковое значение типа, например:

typeof 37 would return 'number'
typeof 3.14 would return 'number'
typeof "37" would return 'string'
typeof "" would return 'string'
typeof function() {} would return 'function'
typeof true would return 'boolean'
typeof false woulld return 'boolean'
typeof undefined would return 'undefined'
typeof {1, 2, 3} would return 'object'
typeof null would return 'object'

Я считаю, что единственные два типа, о которых вы должны заботиться, это 'number' и 'string', потому что вы можете принудить 'string' к 'number'.

Я бы поставил проверку в верхней части вашей функции, чтобы увидеть, являются ли min и max 'number' или 'string', а если нет, то выйти из вашей функции.

person Karl Anderson    schedule 27.06.2013
comment
в валидаторе диапазона в VS мы можем использовать тип даты. насколько я знаю, мы можем проверить диапазон чисел, строк и дат. есть другой тип? как проверить строки? на самом деле, что делает min или max для проверки? - person Angel; 28.06.2013
comment
В JavaScript дата — это просто object. - person Karl Anderson; 28.06.2013
comment
моя функция работает только для чисел, на самом деле это может быть часть моего кода. Я хочу, чтобы это работало для любого типа. это моя главная цель не преобразовывать другие типы в числа. - person Angel; 28.06.2013