JS实现随机生成字符串(可指定长度)的示例代码

 更新时间:2023年08月01日 10:09:06   作者:觉醒法师  
本文主要介绍了JS实现随机生成字符串(可指定长度)的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1.定义随机截取字符串

const _charStr = 'abacdefghjklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789';

2.定义随机生成索引函数

/**
 * 随机生成索引
 * @param min 最小值
 * @param max 最大值
 * @param i 当前获取位置
 */
function RandomIndex(min, max, i){
    let index = Math.floor(Math.random()*(max-min+1)+min),
        numStart = _charStr.length - 10;
    //如果字符串第一位是数字,则递归重新获取
    if(i==0&&index>=numStart){
        index = RandomIndex(min, max, i);
    }
    //返回最终索引值
    return index;
}

3.定义随机生成字符串函数

/**
 * 随机生成字符串
 * @param len 指定生成字符串长度
 */
function getRandomString(len){
    let min = 0, max = _charStr.length-1, _str = '';
    //判断是否指定长度,否则默认长度为15
    len = len || 15;
    //循环生成字符串
    for(var i = 0, index; i < len; i++){
        index = RandomIndex(min, max, i);
        _str += _charStr[index];
    }
    return _str;
}

4.调用

//随机生成长度为20的字符串
getRandomString(20);
//输出结果
//dJQ6UoEaEpXXAEBRQDl9

5.结合上述写法,可以将其整合到一个函数中,来简化流程

具体如下:

/**
 * 随机生成字符串
 * @param len 指定生成字符串长度
 */
function getRandomString(len){
    let _charStr = 'abacdefghjklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789',
        min = 0, 
        max = _charStr.length-1, 
        _str = '';                    //定义随机字符串 变量
    //判断是否指定长度,否则默认长度为15
    len = len || 15;
    //循环生成字符串
    for(var i = 0, index; i < len; i++){
        index = (function(randomIndexFunc, i){         
                    return randomIndexFunc(min, max, i, randomIndexFunc);
                })(function(min, max, i, _self){
                    let indexTemp = Math.floor(Math.random()*(max-min+1)+min),
                        numStart = _charStr.length - 10;
                    if(i==0&&indexTemp >=numStart){
                        indexTemp = _self(min, max, i, _self);
                    }
                    return indexTemp ;
                }, i);
        _str += _charStr[index];
    }
    return _str;
}
//调用:
getRandomString(30);
//结果:
//CvoNFNrOa6NECo3bFV8suMokE780NG

到此这篇关于JS实现随机生成字符串(可指定长度)的示例代码的文章就介绍到这了,更多相关JS 随机生成字符串内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • js(jquery)实现无刷新跳转404页面不存在效果

    js(jquery)实现无刷新跳转404页面不存在效果

    有时候我们希望临时让某个分类或者多个文章不能正常访问,手动给html文件改名?或者改后台改程序?太麻烦了。用本文的js代码很容易实现,而且使用得当很隐蔽。这篇文章主要介绍了js(jquery)实现无刷新跳转404页面不存在效果,需要的朋友可以参考下
    2023-04-04
  • JavaScript实现in-place思想的快速排序方法

    JavaScript实现in-place思想的快速排序方法

    这篇文章主要介绍了JavaScript实现in-place思想的快速排序方法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-08-08
  • 利用函数的惰性载入提高javascript代码执行效率

    利用函数的惰性载入提高javascript代码执行效率

    在 addEvent 函数每次调用的时候都要走一遍,如果浏览器支持其中的一种方法,那么他就会一直支持了,就没有必要再进行其他分支的检测了
    2014-05-05
  • 详解JavaScript对象的深浅复制

    详解JavaScript对象的深浅复制

    从层次上来看,对象的复制可以简单地分为浅复制和深复制,顾名思义,浅复制是指只复制一层对象的属性,不会复制对象中的对象的属性,对象的深复制会复制对象中层层嵌套的对象的属性。本文是我在复制对象方面的一些心得总结,由浅复制到深复制,感兴趣的朋友一起学习吧
    2017-03-03
  • JavaScript中定义对象原型的两种使用方法

    JavaScript中定义对象原型的两种使用方法

    本文主要对JavaScript中定义对象原型的两种使用方法进行介绍,具有很好的参考价值,下面就跟小编一起来看下吧
    2016-12-12
  • JS判断空对象的几个方法大盘点

    JS判断空对象的几个方法大盘点

    在做数据交互的时候,我们经常需要判断数据或者对象是不是为空,避免当接口异常时候前端页面崩溃,下面这篇文章主要给大家介绍了关于JS判断空对象的几个方法,需要的朋友可以参考下
    2022-02-02
  • Javascript中JSON数据分组优化实践及JS操作JSON总结

    Javascript中JSON数据分组优化实践及JS操作JSON总结

    这篇文章主要介绍了Javascript中JSON数据分组优化实践,文中还对JS操作JSON的要领做了总结,需要的朋友可以参考下
    2017-12-12
  • Webpack完整打包流程深入分析

    Webpack完整打包流程深入分析

    webpack是一种前端资源构建工具,一个静态模块打包器(module bundler),下面这篇文章主要给大家介绍了关于Webpack完整打包流程的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • javascript+mapbar实现地图定位

    javascript+mapbar实现地图定位

    地图定位 图吧地图定位 附javascript源码每行都有注释
    2010-04-04
  • JS动态加载当前时间的方法

    JS动态加载当前时间的方法

    这篇文章主要介绍了JS动态加载当前时间的方法,涉及html的onload方法及javascript操作时间的技巧,需要的朋友可以参考下
    2015-02-02

最新评论