2010-04-01 81 views
1

我有一個JavaScript需求。針對IE6的JavaScript問題

我會傳遞一個逗號分隔的字符串到函數中。我需要確保它只包含整數(不帶小數),並且值小於2147483648.請幫助我嗎?

注::我的工作在IE 6

感謝

Lijo

+1

你有什麼試過?你堅持什麼?你到目前爲止編寫的代碼在哪裏? – z5h 2010-04-01 19:27:32

回答

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

哪裏是'返回true'? – EFraim 2010-04-01 19:28:08

+0

只需檢查它是否返回false然後採取行動。 – 2010-04-01 20:36:37

+0

將需要「check(myString)=== false」(因爲==總是假) – plodder 2010-04-01 21:12:23

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 2010-04-01 21:15:59

+0

做完一個測試之後,它似乎沒有* 1就是正確的,但是因爲> =也是一個字符串操作符,我不確定。嘗試比較兩個字符串數字,並且你有麻煩。 – aaaaaaaaaaaa 2010-04-01 22:07:18