How to generate a random string of letters and numbers in Javascript?
本问题已经有最佳答案,请猛点这里访问。
我一直在使用此代码:
1 2 3 4 5 6 7 8 9 10 11 | function stringGen() { var text =""; var charset ="abcdefghijklmnopqrstuvwxyz0123456789"; for( var i=0; i < len; i++ ) text += charset.charAt(Math.floor(Math.random() * charset.length)); return text; } |
但到目前为止,它还没有像现在这样运作。我做错什么了?
谢谢你的帮助
您错过了参数
1 2 3 4 5 6 7 8 9 10 11 12 | function stringGen(len) { var text =""; var charset ="abcdefghijklmnopqrstuvwxyz0123456789"; for (var i = 0; i < len; i++) text += charset.charAt(Math.floor(Math.random() * charset.length)); return text; } console.log(stringGen(3)); |
这会给你一些类似"a1z"的东西。
一条漂亮的单线图是:
1 | Math.random().toString(36).substr(2, length) |
。
或者,如果需要长度超过10/11个字符的str:
1 2 3 4 5 6 | function generateRandAlphaNumStr(len) { var rdmString =""; for( ; rdmString.length < len; rdmString += Math.random().toString(36).substr(2)); return rdmString.substr(0, len); } |
作为替代方案:
1 2 3 4 5 6 7 8 | var len = 20, str = ''; while( len-- ) { str += String.fromCharCode( 48 + ~~(Math.random() * 42) ); } console.log( str ); |
len变量未定义。要么将其作为参数传入,要么将其设置为某个值。
1 2 3 4 5 6 7 8 9 10 11 12 | function stringGen(len) { var text =""; var charset ="abcdefghijklmnopqrstuvwxyz0123456789"; for( var i=0; i < len; i++ ) text += charset.charAt(Math.floor(Math.random() * charset.length)); return text; } alert(stringGen(5)); |
号
http://jsfiddle.net/rg7z3/