直接上代码:
function uid(length = 11) { return Math.random() .toString(36) .substr(2, length); }
知识点:
Number.prototype.toString([radix])
radix
指定要用于数字到字符串的转换的基数(从2到36)。如果未指定 radix 参数,则默认值为 10。
String.prototype.substr(start[, length])
1、start
开始提取字符的位置。如果为负值,则被看作 strLength + start,其中 strLength 为字符串的长度(例如,如果 start 为 -3,则被看作 strLength + (-3))。
2、length
可选。提取的字符数。
解析:
toString(36) 是把数字按36位的基数转成字符串。因为数字0-9共10个加上字母a-z共26个。
substr(2,length) 是从第三位开始提取字符,共提取length个字符。因为前两位是‘0.’所以从第三位开始提取。
其他:
guid:function() { function S4() { return (((1+Math.random())*0x10000)|0).toString(16).substring(1); } return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4()); },