2012-08-09 50 views
0

我正在將CSV文件轉換爲本地二維數組。我想知道是否有更好的方法將字符串轉換爲float/int,而不是使用正則表達式後跟parseFloat()/ parseInt。在JavaScript中使用parseFloat()或parseInt()和正則表達式(轉換CSV文件)

想法/建議?

// numex() - checkes to see if the string (str) is a number 
// returns number.valid (true||false) and number.value = (float||int||string) 
numex = function(str){ 
    number = {}; 
    number.valid = false; 
    number.value = str; 
    // if we see a number then convert it to a floating point or integer 
    if((number.value.search(/[^0-9^\.^\$^\%^\-^\"^,^ ]+/) < 0) && str.length > 0) { 
    number.valid = true; 
    number.value = str.replace(/[^\-^0-9^\.]+/g, ''); // TODO add % coversion code for example if we see a 10% covert it to .1 
    if(number.value.search(/[\.]/) >= 0) { 
     number.value = parseFloat(number.value); // replace floating point 
    } else { 
     number.value = parseInt(number.value); // replace integers 
    } 
    } 
    return number; // number.valid = true or false; 
} 

var num = numex("1.101"); 
alert(num.value); 

回答

0

我不認爲你需要使用正則表達式。試試這個:

var num = {}; 
num.value = new Number(str); 
num.valid = !isNaN(num.value); 

Number構造比parseInt函數和parseFloat更嚴格,因爲它不接受像10aaa1.2bbb字符串,這樣就沒有必要進行正則表達式檢查。

+0

如果(isNaN(值)||值== 「」){返回海峽;}其他{返回false; }; – htmlfarmer 2013-05-28 03:12:41

相關問題