Zrobiłem to, aby utworzyć klucze podobne do YouTube. Używa wyrażenia regularnego do przechwytywania liczb, a następnie przechodzi przez listę dopasowania w celu złożenia ciągu znaków.
Kolejność tablic znaków jest dowolna, możesz zrobić to, co chcesz, ale gdy już ją ustawisz, nie zmieniaj jej później, w przeciwnym razie możesz uruchomić duplikaty kluczy i upewnić się, że nie ma żadnych duplikatów.
Tutaj liczba jest zmienną, która zawiera klawisz wprowadzania. W tej próbce jest bardzo długi, ale może mieć dowolną długość.
var chars = ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
num = "000102030405060708091011121314151617181920212223242526272829303132333435373839404142434445464748495051525354555657585960616263646566";
getnums = num.match(/(0|6[0-1]|[0-5]?[0-9])/g);
to62 = "";
for (var i=0;i<getnums.length;i++) {
to62 = to62 + chars[parseInt(getnums[i])];
// console.log(getnums[i] + ": " + chars[parseInt(getnums[i])])
}
console.log(to62);
A oto implementacja w Cold Fusion, który wykorzystuje tablice 1 oparte zamiast tablic 0 oparte jest obsługa JavaScript w przypadku pomaga nikomu.
<cfscript>
chars = ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];
num = "0001020304050607080910111213141516171819202122232425262728293031323334353738394041424344454614748495051525354555657585960616263646566";
getnums = ReMatch("(0|6[0-1]|[0-5]?[0-9])",num);
to62 = "";
for (i=1; i<=arraylen(getnums); i=i+1) {
to62 = to62 & chars[getnums[i]+1];
}
writeoutput(to62);
</cfscript>
Mówisz "lista cyfr" zamiast "liczba". Czy to oznacza, że chcesz "000006" traktować inaczej niż "6"? – AakashM
Dobre pytanie. Nie, nie. Poprawię to, aby było bardziej jasne. – alumb