2010-04-01 4 views
1

У меня есть требование к JavaScript.JavaScript Вопрос для IE6

Я передам разделенную запятыми строку в функцию. Мне нужно убедиться, что он содержит только целые числа (без десятичных знаков), а значение меньше, чем 2147483648. Не могли бы вы мне помочь?

Примечание :: Я работаю над IE 6

Благодаря

Lijo

+1

Что вы пробовали? На что ты застрял? Где код, который вы написали до сих пор? – z5h

ответ

0

parseInt() будет обрабатывать строку -> целое число преобразования для вас. Насколько эта цифра идет, просто проверить его с помощью условного if/then:

var new_integer = parseInt(passedString); 

if(new_integer < 2147483648){ 
    /* do something */ 
} else { 
    /* do something else */ 
} 
0

Вы можете сделать что-то вроде этого:

function getNumberArrayFromString(str) { 

    var numbers = str.split(","); 
    var numbersArr = new Array(); 

    for(var i = 0; i < str.length, i++) { 
     var number = parseInt(str[i]); 

     if(!isNan(number) && number < 2147483648) { 
      numbersArr[numbersArr.length] = number; 
      //You can also use numbersArr.push(number) but I'm not sure if that's supported in IE6 
     } 
    } 

    return numbersArr; 
} 

Предполагая, что я правильно понимаю ваш вопрос.

0
function isValid(s){ 
    try { 
    return parseInt(s.replace(",","")) < 2147483648; 
    } catch (e) { 
    return false; 
    } 
} 
0

Попробуйте

function check(string){ 
    var s = string.split(','); 
    for(i = 0; i <= s.length; i++){ 
     if(!isNaN(s[i]) && i >= 2147483648){ 
      return false 
     } 
    } 
} 
+0

где 'return true'? – EFraim

+0

Просто проверьте, возвращает ли он false, а затем действуйте корректно. –

+0

должен быть «check (myString) === false» (потому что == всегда будет ложным) – plodder

1
function validate(str){ 
    str=str.split(",") 
    for(var a=0;a<str.length;a++){ 
     if(!str[a].match(/^[0-9]+$/)){ 
      return false 
     } 
     if(str[a]*1>=2147483648){ 
      return false 
     } 
    } 
    return true 
} 

Это не принимает отрицательные числа или пустые строки, должен ли?

+0

это только один, который делает все, что он спрашивает - просто из любопытства, почему * 1 в str [a] * 1 - не будет автоматическое принуждение справиться с этим? – plodder

+0

После выполнения теста кажется, что это будет правильно без * 1, но поскольку> = также оператор строки, я не был уверен. Попробуйте сравнить два строковых номера, и у вас проблемы. – aaaaaaaaaaaa

Смежные вопросы