3345687687876789123 은 다음과 같이 변환됩니다: xxx,xxx,xxx 코드 복사 코드는 다음과 같습니다. <br><br>window.onload = function(){ <br>//전체 테스트는 Xiaodao에서 제공됩니다<br>var testFun = function( callback, str ){ <br>vartipElem = document.createElement( 'div' ), <br>startTime, <br>duration = 0 <br>for( var j = 5; j > 0; j-- ){ <br>startTime = new Date(); <br>for( var i = 10000; i > 0; i-- ){ <br>callback() <br>} <br>기간 = (( new Date( )) - startTime) 기간; <br>} <br>duration = (duration / 5).toFixed(0); <br>tipElem.innerHTML = str '총 소요 시간:' 기간 ' ms '; <br>document .body.appendChild(tipElem ); <br><br>var str = '3345687687876789123' <br><br>var cuter1 = function( str ){// <br>var len = str.length, <br>lastIndex, <br>arr = [] <br>while( len > 0 ){ <br>lastIndex = <br>len -= 3; 🎜>arr.unshift( str.substring(len, lastIndex) ); <br>} <br>return arr.join(',') <br>}; <br><br><br>var cuter2 = function( str ){/ /abcd <br>return str.replace( /B(?=(?:d{3}) $)/g, ',' ) <br><br> var cuter3 = function( str ){//삼촌 <br>return str.replace(/(.*)(d{3})$/,function(){ <br>if(arguments[1]&& 인수[2 ]){ <br>return 인수[1].replace(/(.*)(d{3})$/,arguments.callee) "," 인수[2] <br>} else { <br>return 인수[0]; <br>}); <br>}; <br><br><br>var cuter4 = function( str ){//Alucelx <br>return str.split('' ).reverse() .join('').replace(/(d{3})/g, '$1,').split('').reverse().join(''); ; <br><br>var cuter5 = function( str ){//Situ Zhengmei <br>var ret = [] <br>while(str){ <br>str = str.replace(/d{1, 3}$/g ,function(a){ <br>ret.unshift(a) <br>return "" <br>}) <br>} <br>return ret.join(","); 🎜>}; <br>var cuter6 = function( str ){//Situ Zhengmei <br>var n = str.length % 3 <br>if(n){ <br>return str.slice(0,n ) str.slice(n).replace(/(d{3})/g,',$1') <br>}else{ <br>return str.replace(/(d{3})/g,' ,$1').slice(1) <br>} <br>}; <br>var cuter7 = function(str){//Situ Zhengmei<br>var ret = "" <br>for(var i = 0 , n = str.길이, m = n %3 - 1; i < n; i ){ <BR>ret = str.charAt(i) <BR>if( i % 3 === m ) >ret = ", " <BR>} <BR>} <BR>var e = ret.length - 1 <BR>return ret.charAt(e) == "," ? ret.slice(0,e) : ret <BR>} <BR>var cuter8 = function(str){//[[valueOf]] <BR>var s2 = [].slice.call(str) <BR>for(var i=s2.length) -3; i> 0;i-=3){ <br>s2.splice(i, 0 ,',' ) <br>} <br>return s2.join("") <br> >var cuter9 = function (str){//<br>var newStr= new Array(str.length parseInt(str.length/3)) <br>newStr[newStr.length-1]=str[ str.length-1] ; <br>var currentIndex=str.length-1; <br>for(var i = newStr.length-1;i >= 0;i--) { <br>if(( newStr.length-i) %4==0) <br>{ <br>newStr[i]="," <br>}else{ <br>newStr[i]=str[currentIndex--]; 🎜>} <br> } <br>return newStr.join("") <br>} <br>var cuter10 = function(str){//Rekey <br>var len = str.length, str2 = '' , max = Math.floor (len / 3); <br>for(var i = 0 ; i < max ; i ){ <BR>var s = str.slice(len - 3, len); str = str.substr( 0, len - 3); <BR>str2 = (',' s) str2; <BR>len = str.length; <BR>str = <BR>return str <BR>} <BR>//다음은 성능 테스트입니다 <BR>testFun(function(){ <BR>cuter1(str); <BR>}, '방법 1' ) <BR><BR> <BR>testFun(function() { <BR>cuter2(str); <BR>}, '방법 2' ) <BR><BR><BR>testFun(function(){ <BR>cute3(str) ; <BR>}, '방법 3' ); <BR><br><br>testFun(function(){ <BR>cute4(str); <BR>}, '방법 4' <BR><br><br>testFun(function (){ <BR>cuter5(str); <BR>}, '방법 5' ) <BR>testFun(function(){ <br>cute6(str); <br> }, '방법 6' ); <BR>testFun(function(){ <BR>cuter7(str); <BR>}, '방법 7' ) <br>testFun(function(){ <br>cuter8( str); <BR>}, '방법 8' ); <BR>testFun(function(){ <BR>cuter9(str); <BR>}, '방법 9' ) <BR>testFun() { <BR>cute10(str) <BR>}, '방법 10' ) <BR>} <BR> 신에너지 테스트 결과는 다음과 같습니다. 코드 복사 코드는 다음과 같습니다. 방법 1에 소요되는 총 시간: 14ms 방법 2의 총 소요 시간: 9ms 방법 3의 총 소요 시간: 174ms 방법 4의 총 소요 시간: 34ms 방법 5의 총 소요 시간: 39ms 방법 6의 총 소요 시간: 7ms 방법 7의 총 소요 시간: 9ms 방법 8의 총 소요 시간: 30ms 방법 9의 총 소요 시간: 14ms 합계 방법 10의 시간 소모: 4ms