所以,我有几个测试用例字符串: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'的用途是什么? –