版本号比较函数-js
生活随笔
收集整理的這篇文章主要介紹了
版本号比较函数-js
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
面試前,讓做的一個版本號比較函數。
1 <script type="text/javascript"> 2 var v1=prompt("請輸入第一個版本號"); 3 var v2=prompt("請輸入第二個版本號"); 4 console.log(versionCompare(v1,v2)); 5 function versionCompare(v1,v2) { 6 //版本號間如果出現字母,則視為測試版本,不比較字母大小,字母只出現一次 7 v1=v1.replace(/\s/g,"");//去除空格 8 v2=v2.replace(/\s/g,""); 9 if(v1[0]=="v"||v1[0]=="V"){v1=v1.replace(/v/i,"");}//去除開頭的第一個v 10 if(v2[0]=="v"||v2[0]=="V"){v2=v2.replace(/v/i,"");} 11 if(v1[0]=="."){v1=v1.replace(/./i,"");}//去除開頭的. 12 if(v2[0]=="."){v2=v2.replace(/./i,"");} 13 if(v1[v1.length-1]=="."){v1=v1.slice(0,v1.length-1)};//去除末尾的. 14 if(v2[v2.length-1]=="."){v2=v2.slice(0,v2.length-1)}; 15 console.log(v1+"+"+v2); 16 var dv1=v1.split(".");//按.分隔開來 17 var dv2=v2.split("."); 18 var minlength=Math.min(dv1.length,dv2.length);//獲取兩者最短字符串長度 19 var str1,str2,count1,count2;//定義中間變量 20 console.log(dv1+"-"+dv2);//打印處理后的dv1和dv2 21 for (i=0;i<minlength;i++) { 22 count1=-1; 23 count2=-1; 24 //版本號有字母的情況 25 if((dv1[i].search(/[a-zA-Z]+/)!=-1||dv2[i].search(/[a-zA-Z]+/)!=-1)&&i>0){ 26 //對v1進行字母前內容提取 27 if (dv1[i].search(/[a-zA-Z]+/)!=-1) { 28 count1=dv1[i].search(/[a-zA-Z]+/); 29 str1=dv1[i].slice(0,count1); 30 } else{ 31 str1=dv1[i]; 32 } 33 //對v2進行字母前內容提取 34 if (dv2[i].search(/[a-zA-Z]+/)!=-1) { 35 count2=dv2[i].search(/[a-zA-Z]+/); 36 str2=dv2[i].slice(0,count1); 37 } else{ 38 str2=dv2[i]; 39 } 40 //判斷字母前版本號大小 41 if(parseInt(str1)<parseInt(str2)){return 2;} 42 else if(parseInt(str1)>parseInt(str2)){return 1;} 43 else{ 44 if (dv1[i][count1]==dv2[i][count2]) {//字母相同,判斷字母后版本大小 45 str1=dv1[i].slice(count1+1); 46 str2=dv2[i].slice(count2+1); 47 return (parseInt(str1)<parseInt(str2)?2:1);} 48 else{return 0;}//字母不同,屬于不同的測試版本 49 } 50 } 51 //版本號無字母的情況 52 else if(parseInt(dv1[i])<parseInt(dv2[i])){ 53 return 2;} 54 else if (parseInt(dv1[i])>parseInt(dv2[i])){ 55 return 1;} 56 } 57 //在最短字符串長度無比較結果時,誰的長誰的版本號新 58 if (dv1.length==dv2.length) { 59 return 0; 60 }else{ 61 return (dv1.length<dv2.length?2:1); 62 } 63 } 64 65 </script>還是要從基礎學起,數據結構,操作系統,計算機網絡,計算機組成原理。
轉載于:https://www.cnblogs.com/jkj-jim/p/6486788.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的版本号比较函数-js的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 属蛇养博美狗取名好吗
- 下一篇: AC日记——凌乱的yyy 洛谷 P180