Использование регулярного выражения для проверки того, содержит ли ввод нецифры

function validInteger(theNumber){
    var anyNonDigits = new  RegExp('\D','g');
    if(parseInt(theNumber)&&!anyNonDigits.test(theNumber)){
        return true;
    }else{
        return false;
    }
}

Выше приведена функция, которую я написал для проверки некоторых входных данных. Мне нужны все положительные целые числа. Проблема, с которой я столкнулся, связана с объектом RegExp. Кажется, что это должно быть очень просто, но по какой-то причине это не работает.

Например, если я передаю 'f5', я получаю true, но если я передаю '5f', я получаю false. У меня также возникают проблемы при передаче отрицательных чисел. -3 не перехватывается, даже если я преобразую переменную в строку перед ее передачей в RegExp. Я могу исправить это, добавив '&&parseInt(theNumber)>0' в свой оператор if, но мне кажется, что регулярное выражение тоже должно улавливать это. Заранее спасибо!

6
задан Frank B 7 June 2012 в 16:52
поделиться