js 产生随机字符 长度为n1+n2的字符串

js 产生随机字符 长度为n1+n2的字符串,第1张

//产生随机标识符 前面以四个字母开头长度为n1+n2的字符串

function getUuid() {

var s = [];

var s1 = [];

var hexDigits1 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

var hexDigits1length = hexDigits1length;

var hexDigits2 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

var hexDigits2length = hexDigits2length;

var n1 = 4; //随机前端字母字符串长度

var n2 = 32; //随机后端数字字母字符串长度

for(var i = 0; i < n1; i++) {

s[i] = hexDigits1substr(Mathfloor(Mathrandom() (hexDigits1length - 1)), 1);

}

for(var i = 0; i < n2; i++) {

s1[i] = hexDigits2substr(Mathfloor(Mathrandom() (hexDigits2length - 1)), 1);

}

////数组合并 apushapply(a,b);//将b合并到a中

spushapply(s, s1); //将s1合并到s中

//第3个位置插入-

s[2] = "-";

//第4个字符之后插入最多3个-

for(var i = 0; i < 3; i++) {

s[Mathfloor(Mathrandom() (n1 + n2 - 5)) + 4] = "-";

}

let uuid = sjoin("");

return uuid;

}

UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。

方法一:rpnjs:使用rpnjs实现eval函数功能

*** 作链接:网页链接

方法二:

(1)使用Underscorejs: *** 作链接:网页链接

(2)使用Immutablejs: *** 作链接:网页链接

(3)使用UUID、Base64、Chance: *** 作链接:网页链接

扩展微信小程序框架功能(1)——Promise

ES6 对 Promise 有了原生的支持,但微信开发者工具更新版本(011112200)后, 移除了开发者工具对 ES6 中Promise 特性原生的支持, 需要引入第三方的 Promise 库。

扩展微信小程序框架功能(2)——Generator

Generator函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同。

扩展微信小程序框架功能(3)——函数功能增强

Underscorejs 和 Lodash 是最常用的JavaScript库。

扩展微信小程序框架功能(4)——Immutablejs

Immutablejs 是 Facebook 开发的不可变数据集合。Immutable

Data(不可变数据)一旦创建就不能被修改。通过使用Immutable

Data,可以更容易的处理缓存、回退、数据变化检测等问题,应用开发更简单。

扩展微信小程序框架功能(5)——Redux

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。

扩展微信小程序框架功能(6)—日期时间

Momentjs是一个JavaScript的日期、时间处理工具类,其对于JavaScript的日期时间处理功能非常强悍和全面。可以用在浏览器环境中使用,也可以在Nodejs中。

扩展微信小程序框架功能(7)——正则表达式

XRegExp 是一个开源的 JavaScript库,提供一个参数化、可扩展的支持各种浏览器的正则表达式的实现库,支持附加语法、标志以及方法。

扩展微信小程序框架功能(8)——Xml处理

x2js是一个 实现 XML 与 JavaScript 对象之间相互转换的工具库。

扩展微信小程序框架功能(9)——加解密

node-uuid可以快速地生成符合规范 的 UUID。js-base64可以实现Base64编码和解码。crypto-js可以非常方便地在 JavaScript 进行加解密。

扩展微信小程序框架功能(10)——测试辅助

Chance是一个 JavaScript 随机数生成工具。Mockjs可以生成随机数据,拦截 Ajax 请求。

方法三:moment

*** 作链接:网页链接

一个小巧、安全、URL友好、唯一的 JavaScript 字符串 ID 生成器。

支持现代浏览器、IE 使用 Babel 、Nodejs 和 React Native。

Nano ID 与 UUID v4 (基于随机) 相当。它们在 ID 中有相似数量的随机位(Nano ID 为126,UUID 为122),因此它们的冲突概率相似::

Nano ID 和 UUID v4之间有三个主要区别:

测试配置: ThinkPad X1 Carbon Gen 9, Fedora 34, Nodejs 1610

Nano ID 提供 ES 模块:

Nano ID 有 3 个 API:正常(阻塞)、异步、和不安全。默认情况下,Nano ID 使用 URL 友好的符号( A-Za-z0-9_- )并返回一个有21个字符(类似 UUID v4 的冲突概率)的 ID 。

使用 Nano ID 最安全、最简单的方法。在极少数情况下,噪声收集时可能会阻止 CPU 执行其他工作用于硬件随机发生器。

如果你想要减小 ID size(但是会增加冲突概率),可以将 size 作为参数传递。

customAlphabet 允许您使用自己的字母表创建 nanoid 和 ID size。

customRandom 允许您创建一个 nanoid 并替换字母表和默认的随机字节生成器。

在此示例中,使用基于种子的生成器:

random 回调必须接受数组大小并返回随机数的数组。如果要使用与 customRandom 相同的URL友好符号, 你可以使用 urlAlphabet 获取默认字母表。

异步和非安全 API 不适用于 customRandom 。

目前还没有将 nanoid 用于 React key prop 的正确方法

因为它在不同的渲染中应该是一致的。

您应该尝试在列表项中找到稳定的 id。

如果您没有稳定的 ID,您最好使用索引作为 键 而不是 nanoid() :

React Native 没有内置的随机生成器。下面的 polyfill 适用于普通 React Native 和从 39x 开始的 Expo。

在 PouchDB 和 CouchDB 中,ID 不能以下划线 _ 开头。需要一个前缀来防止这个问题,因为 Nano ID 可能在默认情况下使用 _ 作为 ID 的开头。在默认情况下,在 ID 的开头使用 _ 。

用下面的选项覆盖默认的 ID。

可以通过调用 npx nanoid 在终端获得唯一的 ID。

如果你想改变字母或 ID size,应该使用 nanoid-cli 。

Nano ID 已被移植到许多语言。 你可以使用下面这些移植,获取在客户端和服务器端相同的ID生成器。

以上就是关于js 产生随机字符 长度为n1+n2的字符串全部的内容,包括:js 产生随机字符 长度为n1+n2的字符串、怎么获取uuid、怎样使用微信小程序的第三方js库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9733096.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存