所以,我有幾個測試用例字符串:JavaScript函數格式字符串
測試:00 -44 48 5555 8361' 預計:004-448-555-583-61
測試:0 - 22 1985--324' 預計:022-198-53-24
測試: '555372654' 預計:555-372-654
任何建議將是有益的。我一直在這裏待了幾個小時,試圖找出爲什麼一些預期的結果有效,而另一些則沒有。給定表示電話號碼的字符串S,字符串將需要重新格式化。字符串S由N個字符組成:數字,空格和/或破折號。它至少包含兩位數字。字符串S中的空格和破折號可以忽略。我想重新格式化給定的電話號碼,以便數字按長度爲三的塊分組,並用單個破折號分隔。如果有必要,最後一個塊或最後兩個塊的長度可以是兩個。
var s = "00-44 48 5555 8361";
var n = s.replace(/\D/g,'');
var temp = formatNumber(n);
var final = temp.replace(/\-$/,'');
alert(final);
function formatNumber(S){
var len = S.length;
var max = len - 2 * ((3-len) % 3);
var dash = "-";
var result;
for(i = 0; i < max; i+=3){
\t result += S.substring(i, i+3).concat(dash);
}
for(i = max; i < len; i+=2){
\t result += S.substring(i, i+2).concat(dash);
}
\t return result.toString();
}
*作用有點滑稽* - 不是一個問題描述 –
爲什麼第二個測試案例具有二個長度爲預期結果的兩個子集? –
'formatNumber'的用途是什麼? –