我有一個JavaScript需求。針對IE6的JavaScript問題
我會傳遞一個逗號分隔的字符串到函數中。我需要確保它只包含整數(不帶小數),並且值小於2147483648.請幫助我嗎?
注::我的工作在IE 6
感謝
Lijo
我有一個JavaScript需求。針對IE6的JavaScript問題
我會傳遞一個逗號分隔的字符串到函數中。我需要確保它只包含整數(不帶小數),並且值小於2147483648.請幫助我嗎?
注::我的工作在IE 6
感謝
Lijo
parseInt()
將處理字符串 - >整數轉換爲您服務。至於那張圖,使用條件if/then
只是測試它:
var new_integer = parseInt(passedString);
if(new_integer < 2147483648){
/* do something */
} else {
/* do something else */
}
你可以做這樣的事情:
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;
}
假設我正確理解你的問題。
function isValid(s){
try {
return parseInt(s.replace(",","")) < 2147483648;
} catch (e) {
return false;
}
}
試試這個
function check(string){
var s = string.split(',');
for(i = 0; i <= s.length; i++){
if(!isNaN(s[i]) && i >= 2147483648){
return false
}
}
}
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
}
這不會接受負整數或空字符串,應該嗎?
這是迄今爲止只有一個他所要求的 - 只是出於好奇,爲什麼* 1在str [a] * 1 - 會不會自動強制處理呢? – plodder 2010-04-01 21:15:59
做完一個測試之後,它似乎沒有* 1就是正確的,但是因爲> =也是一個字符串操作符,我不確定。嘗試比較兩個字符串數字,並且你有麻煩。 – aaaaaaaaaaaa 2010-04-01 22:07:18
你有什麼試過?你堅持什麼?你到目前爲止編寫的代碼在哪裏? – z5h 2010-04-01 19:27:32