-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAdvDiv.min.js
1 lines (1 loc) · 3.48 KB
/
AdvDiv.min.js
1
function advdiv(r,e,t,a,f,n){var i=false,p=false;var s=0,I=0,d=-1,u,g,$;var v="",h;var x;var E=[];var R;var M,l,o,w,y;var c,b,j;var k;var m;RegExp.escape=r=>r.replace(/[-\\^$*+?.()|[\]{}]/g,"\\$&");if(typeof t=="undefined")t="-";if(typeof a=="undefined")a=".";if(typeof f=="undefined"){f="[";n="]"}if(typeof n=="undefined")n="";if(r.length==0||e.length==0||/^\d*$/.test(t)||/^\d*$/.test(a)||/^\d*$/.test(f)||/^\d+$/.test(n))return false;m=new RegExp("^("+RegExp.escape(t)+")?\\d*("+RegExp.escape(a)+"\\d*("+RegExp.escape(f)+"\\d*"+RegExp.escape(n)+")?)?$");if(!m.test(r)||!m.test(e))return false;if(r.slice(0,t.length)==t){r=r.slice(t.length);i=true}if(e.slice(0,t.length)==t){e=e.slice(t.length);i=!i}c=i?t:"";r=r.replace(a,".");e=e.replace(a,".");if(r[0]==".")r="0"+r;if(e[0]==".")e="0"+e;r1=r.indexOf(f)>-1?(new RegExp(RegExp.escape(f)+"(.+)"+RegExp.escape(n)).exec(r.slice(r.indexOf(".")+1))||["0","0"])[1]:"0";if(r1!="0")r=r.slice(0,r.indexOf(".")+r.slice(r.indexOf(".")+1).indexOf(f)+1);r=r.replace(/^0+/,"0").replace(r1=="0"?/\.0*$/:/\.*$/,"");r2=e.indexOf(f)>-1?(new RegExp(RegExp.escape(f)+"(.+)"+RegExp.escape(n)).exec(e.slice(e.indexOf(".")+1))||["0","0"])[1]:"0";if(r2!="0")e=e.slice(0,e.indexOf(".")+e.slice(e.indexOf(".")+1).indexOf(f)+1);e=e.replace(/^0+/,"0").replace(r2=="0"?/\.0*$/:/\.*$/,"");if(e=="0"&&/^[0\.]+$/.test(r2))return false;if(r=="0"&&/^[0\.]+$/.test(r1))return"0";if(r2!="0"){b=r.replace(".","");j=e.replace(".","");l=parseInt(b+r1)-parseInt(b);o=parseInt(j+r2)-parseInt(j);if(r.indexOf(".")>-1)w=Math.pow(10,r.length-r.indexOf(".")-1+r1.toString().length)-Math.pow(10,r.length-r.indexOf(".")-1);else w=Math.pow(10,r1.toString().length)-1;if(e.indexOf(".")>-1)y=Math.pow(10,e.length-e.indexOf(".")-1+r2.toString().length)-Math.pow(10,e.length-e.indexOf(".")-1);else y=Math.pow(10,r2.toString().length)-1;return c+advdiv((l*y).toString(),(w*o).toString(),t,a,f,n)}x=function(r){if(r.indexOf(".")>-1&&r.indexOf(".")==r.length-2)return r.replace(".","");if(r.indexOf(".")>-1)return r.split(".")[0]+r.split(".")[1].split("")[0]+"."+r.split(".")[1].slice(1);return r+"0"};while(e.indexOf(".")>-1){if(r.indexOf(".")<0){r+=r1.toString()[0];if(r1.toString().length>1)r1=parseInt(r1.toString().slice(1)+r1.toString()[0])}else r=x(r);e=x(e)}M=parseInt(e);R=r.split("");k=r.split(".")[0].split("");for(u=0;u<k.length;u++){$=Math.floor((parseInt(x(s.toString()))+parseInt(k[u]))/M);v+=$.toString();s=parseInt(x(s.toString()))+parseInt(k[u])-M*$}if(v==""){v="0";u++}v+=".";if(R.indexOf(".")<0)R.push(".");for(u++;;u++){if(u>=R.length){d++;p=true;R.push(parseInt(r1.toString().split("")[d%r1.toString().length]))}I=parseInt(x(s.toString()))+parseInt(R[u])-M*Math.floor((parseInt(x(s.toString()))+parseInt(R[u]))/M);if(p){if(I==0&&r1==0){v+=Math.floor((parseInt(x(s.toString()))+parseInt(R[u]))/M).toString();return c+v.replace(/^0+|0$/g,"").replace(/^\./,"0.").replace(/\.$/,"").replace(".",a)}for(g=0;g<E.length;g++){if(p&&E[g]==I&&g%r1.toString().length==(d+1)%r1.toString().length){v+=Math.floor((parseInt(x(s.toString()))+parseInt(R[u]))/M).toString();h=(v.slice(0,u-d+g)+"["+v.slice(u-d+g)+"]").replace(/^0+/g,"").replace(/^\./,"0.");if(h[h.indexOf("[")-1]==h[h.indexOf("]")-1])h=h.slice(0,h.indexOf("[")-1)+"["+h[h.indexOf("[")-1]+h.slice(h.indexOf("[")+1,h.indexOf("]")-1)+"]";if(h.indexOf("]")==h.indexOf("[")+3&&h[h.indexOf("[")+1]==h[h.indexOf("[")+2])h=h.slice(0,h.indexOf("[")+2)+"]";return c+h.replace(/[.[\]]/g,r=>r[0]=="."?a:r[0]=="["?f:n)}}}v+=Math.floor((parseInt(x(s.toString()))+parseInt(R[u]))/M).toString();if(p)E.push(s);s=I}}