2011-07-28 106 views
0

我有一個問題。我將如何驗證或格式化位置號碼00-00-00-000-000數字0-9,其中0是通過java腳本。如何通過Java腳本驗證或格式化位置編號00-00-00-000-000?

像這樣

function formatTime(time) { 
    var result = false, m; 
    var re = /^\s*([01]?\d|2[0-3]):?([0-5]\d)\s*$/; 
    if ((m = time.match(re))) { 
     result = (m[1].length == 2 ? "" : "0") + m[1] + ":" + m[2]; 
    } 
    return result; 
} 
alert(formatTime(" 1:00")); 
alert(formatTime("1:00 ")); 
alert(formatTime("1:00")); 
alert(formatTime("2100")); 
alert(formatTime("90:00")); // false 
+0

正則表達式對此非常簡單。我建議你從http://www.regular-expressions.info/和https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions –

+0

開始。那麼輸入是什麼,一個有很多數字的數字?或者是那種格式的字符串?或者它是不帶前導零的格式的字符串?然後我假定輸出的格式爲「XX-XX-XX-XXX-XXX」,其中「X = 0-9」 –

回答

1

簡單的函數:JSFiddle

作品進行任何輸入字符串格式爲X-X-X-X-X,其中第一三個X可以是0到99,最後2和兩個X之間可以介於0和999之間。

function doIt(lala) { 
    var reg = /^\s*([0-9]{1,2})\-([0-9]{1,2})\-([0-9]{1,2})\-([0-9]{1,3})\-([0-9]{1,3})\s*$/; 
    var m = lala.match(reg); 
    if(m) { 
     var n1 = m[1].length == 1 ? ('0' + m[1]) : m[1]; 
     var n2 = m[2].length == 1 ? ('0' + m[2]) : m[2]; 
     var n3 = m[3].length == 1 ? ('0' + m[3]) : m[3]; 
     var n4 = m[4].length == 1 ? ('00' + m[4]) : (m[4].length == 2 ? '0' + m[4] : m[4]); 
     var n5 = m[5].length == 1 ? ('00' + m[5]) : (m[5].length == 2 ? '0' + m[5] : m[5]); 
     return (n1 + '-' + n2 + '-' + n3 + '-' + n4 + '-' + n5); 
    } 
    return ''; // you can choose to return false here 
       // if you want to use this as some sort of validation 
}