javascript - 是否可以使用 JavaScript/jQuery 进行 Base 36 编码?

标签 javascript jquery

我正在考虑在这里使用编码/解码技术(在 Ruby 中编码到基数 36/从基数 36 解码很简单)

how to implement a short url like urls in twitter?

想法是跟踪用户推荐、邀请 URL。我可以使用 Rails 进行解码,但有没有办法使用 Javascript 或 jQuery 进行编码?

最佳答案

Number 上的 toString 方法有一个可选的基数参数:

(128482).toString(36);
128482..toString(36);
128482 .toString(36);
var num = 128482; num.toString(36);

请注意,这不起作用,因为数字需要句点后的十进制数字,而不是字母:

128482.toString(36);  // Syntax error

另外,你也可以用JS解码:

parseInt("2r4y", 36);

编辑:

But if I want to remove look-alike characters (1-l or 0-O) what can I do?

最简单的方法是根据要跳过的字符数来减少基数,然后进行翻译:请注意,仅使用 1-l0-O 之一是一个问题,因为base36只编码小写(在这种情况下你有1-l,但没有0-O),你可以将其变成大写(在这种情况下,副反之亦然)。

(128482).toString(36).replace(/[m-y]/, x => String.fromCharCode(x.charCodeAt(0) + 1))

如果您想要大于 36 的基数,则必须拥有自己的基数更改函数,因为 36 是 toString 支持的最高值。在这种情况下,您可以轻松地根据需要制作自己的数字库存。

for working with long numbers?

继续吧:) 注意 n 后缀,它将数字变成 BigInt :

1000000000000000000000000000000000000000000000000000000000n.toString(36)
// => "9edwccv83mch429oxmlxupo4z1bdaiusrm29s"

关于javascript - 是否可以使用 JavaScript/jQuery 进行 Base 36 编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9542726/

相关文章:

javascript - 禁用网页上的鼠标悬停事件

javascript - 使用 JavaScript 或 Puppeteer 检测页面上的元素是否可见

jquery - NVD3 - 使用最新版本的 Safari 上的折线图 NaN

php - mysql_escape_string() 有什么作用?

javascript - 为数据表中的行添加 id

javascript - 10 行,每行 35 个字符的 TextArea

javascript - 单击提交按钮后重新加载页面后如何滚动到特定的 div?

php - HTML <img>(或 JS 图像)与通过 PHP 的内联图像(base64_encoded 图像)

jquery - 提高 box-shadow 的性能

jquery - jquery 拖动停止后 chrome 中的表格边框问题