2010-04-13 50 views

回答

3

你必須把它作爲一個字符串(這不是一個數字)和正則表達式可能是實現這一目標的最簡單的方法:

'2.2.10'.match(/^\d+\.\d+\.\d+$/); 

另外,如果你認爲一切否則是一個數字呢:

'2.d2.10'.split('.').length === 3 
0

如果你想確定版本A是否是版本B之前,你可以做這樣的事情:

// Assumes "low" numbers of tokens and each token < 1000 
function unversion(s) { 
    var tokens = s.split('.'); 
    var total = 0; 
    $.each(tokens, function(i, token) { 
    total += Number(token) * Math.pow(0.001, i); 
    }); 
    return total; 
} 

// that version b is after version a 
function isAfter(a, b) { 
    return unversion(a) < unversion(b); 
} 
1

如果您要檢查字符串是否僅包含數字和點,後面帶有一個數字,這裏是一個正則表達式:

if(myString.match(/^[\d\.]*\d$/)) { 
    // passes the test 
} 

"2".match(/^[\d\.]*\d$/) // true 
"2.2".match(/^[\d\.]*\d$/) // true 
"2.2.10".match(/^[\d\.]*\d$/) // true 
".2".match(/^[\d\.]*\d$/) // true 
"2.".match(/^[\d\.]*\d$/) // FALSE 
"fubar".match(/^[\d\.]*\d$/) // FALSE