JS简单生成由字母数字组合随机字符串示例


Posted in Javascript onMay 25, 2018

本文实例讲述了JS简单生成由字母数字组合随机字符串。分享给大家供大家参考,具体如下:

前言

最近有个需求,是需要生成3-32位长度的字母数字组合的随机字符串,另一个是生成43位随机字符串。

方法一

奇妙的写法

Math.random().toString(36).substr(2);

输出结果

JS简单生成由字母数字组合随机字符串示例

解释

很有意思,研究了一下,基本上toString后的参数规定可以是2-36之间的任意整数,不写的话默认是10(也就是十进制),此时返回的值就是那个随机数。

若是偶数,返回的数值字符串都是短的,若是奇数,则返回的将是一个很大长度的表示值。
若<10 则都是数字组成,>10 才会包含字母。

所以如果想得到一长串的随机字符,则需使用一个 > 10 且是奇数的参数,另外根据长度自行使用slice(2,n)截取!

方法二

这个倒是有很多的实现方法,由于上一种写法不太符合需求所以写了下一种,欢迎拍砖。

代码

/*
** randomWord 产生任意长度随机字母数字组合
** randomFlag-是否任意长度 min-任意长度最小位[固定位数] max-任意长度最大位
** xuanfeng 2014-08-28
*/
function randomWord(randomFlag, min, max){
  var str = "",
    range = min,
    arr = ['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'];
  // 随机产生
  if(randomFlag){
    range = Math.round(Math.random() * (max-min)) + min;
  }
  for(var i=0; i<range; i++){
    pos = Math.round(Math.random() * (arr.length-1));
    str += arr[pos];
  }
  return str;
}

使用方法

生成3-32位随机串:randomWord(true, 3, 32)
生成43位随机串:randomWord(false, 43)

JS简单生成由字母数字组合随机字符串示例

Javascript 相关文章推荐
jquery 实现的全选和反选
Apr 15 Javascript
jquery的键盘事件修改代码
Feb 24 Javascript
js中的this关键字详解
Sep 25 Javascript
javascript中typeof操作符和constucor属性检测
Feb 26 Javascript
javascript关于运动的各种问题经典总结
Apr 27 Javascript
浅析JavaScript动画
Jun 10 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
Jan 12 Javascript
JQuery异步提交表单与文件上传功能示例
Jan 12 Javascript
浅谈原型对象的常用开发模式
Jul 22 Javascript
微信小程序实现多选框功能的实例代码
Jun 24 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
Sep 24 Javascript
vue实现广告栏上下滚动效果
Nov 26 Vue.js
Webpack中雪碧图插件使用详解
May 25 #Javascript
使用javascript做在线算法编程
May 25 #Javascript
JS实现的汉字与Unicode码相互转化功能分析
May 25 #Javascript
浅析node.js的模块加载机制
May 25 #Javascript
webpack4的迁移的使用方法
May 25 #Javascript
最后说说Vue2 SSR 的 Cookies 问题
May 25 #Javascript
详解webpack4多入口、多页面项目构建案例
May 25 #Javascript
You might like
php 之 没有mysql支持时的替代方案
2006/10/09 PHP
PHP中ADODB类详解
2008/03/25 PHP
《PHP编程最快明白》第六讲:Mysql数据库操作
2010/11/01 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
JS遮罩层效果 兼容ie firefox jQuery遮罩层
2010/07/26 Javascript
javascript:history.go()和History.back()的区别及应用
2012/11/25 Javascript
javaScript 页面自动加载事件详解
2014/02/10 Javascript
javascript事件委托的用法及其好处简析
2016/04/04 Javascript
基于JS实现省市联动效果代码分享
2016/06/06 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
JS实现Ajax的方法分析
2016/12/20 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
Vue防止白屏添加首屏动画的实例
2019/10/31 Javascript
[02:34]DOTA2亚洲邀请赛 BG战队出场宣传片
2015/03/09 DOTA
[01:05:32]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第一局
2016/03/04 DOTA
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
Python中的__SLOTS__属性使用示例
2015/02/18 Python
Python科学计算之Pandas详解
2017/01/15 Python
python修改list中所有元素类型的三种方法
2018/04/09 Python
Python OpenCV读取png图像转成jpg图像存储的方法
2018/10/28 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
Python socket 套接字实现通信详解
2019/08/27 Python
如何基于Python实现电子邮件的发送
2019/12/16 Python
python使用协程实现并发操作的方法详解
2019/12/27 Python
开启Django博客的RSS功能的实现方法
2020/02/17 Python
Python基于network模块制作电影人物关系图
2020/06/19 Python
美国体育用品商店:Academy Sports + Outdoors
2020/01/04 全球购物
如何找出EMP表里面SALARY第N高的employee
2013/12/05 面试题
物流仓储计划书
2014/01/10 职场文书
银行求职信范文
2014/05/26 职场文书
工厂员工辞职信范文
2015/05/12 职场文书
导游词之江西赣州
2019/10/15 职场文书
数据分析数据库ClickHouse在大数据领域应用实践
2022/04/03 MySQL
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫