js里面通过Math.random可以生成随机的数字,那怎样生成随机的字符串呢?请往下看
function generateRandomAlphaNum(len) { var rdmString = ""; for (; rdmString.length < len; rdmString += Math.random().toString(36).substr(2)); return rdmString.substr(0, len); }
巧妙利用toString方法,toString方法可以接收一个基数作为参数,这个基数从2到36封顶。如果不指定,默认基数是10进制。上面的随机字符串生成函数,通过Math.random()生成一个随机数,再通过toString函数指定基为36,将随机数转换为随机的字符串。
Math.random().toString(36) "0.mexoii5r8tc323xr" Math.random().toString(36).substr(2) "mexoii5r8tc323xr"
改造一下,我们就可以得到一个通过js生成随机数的函数
function generateRandomAlphaNum(len) { var rdmString = ""; for (; rdmString.length < len; rdmString += Math.random().toString().substr(2)); return rdmString.substr(0, len); } generateRandomAlphaNum(5) "85391" generateRandomAlphaNum(10) "4132368105"
再改造一下,通过参数指定是生成随机的字符串还是随机的纯数字串
function generateRandomAlphaNum(len,radix) { radix = radix ? 10 : 36; var rdmString = ""; for (; rdmString.length < len; rdmString += Math.random().toString(radix).substr(2)); return rdmString.substr(0, len); } generateRandomAlphaNum(16) "0izorpc114z33dir" generateRandomAlphaNum(16,1) "2046840938273817" generateRandomAlphaNum(16,'s') "3525329900439828"
如果第二次参数不为null,则生成随机的纯数字串,否则生成随机的字符串。
转载请注明:知识蚂蚁 » javascript/js生成随机字符串函数