<html>
<head>
</head>
<body>
<input type="Textbox" id="pwbx" />
<button OnClick="GetRandom()" type="button">generate</button>
<script>
function getCharacter() {
return Math.floor(Math.random() * 18).toString(18);
}
for( var str="", i=0, l=14+Math.floor(Math.random()*3); i<l; i++) {
str += getCharacter();
}
</script>
</body>
</html>
这给了我一个小于1的随机数,如0.4567432112等。
我如何改变它,给我一个14到16个字符的字符串,随机的字母数字?那么由abcdefgh0123456789组成的14,15或16个字符的字符串?
由于
答案 0 :(得分:3)
字符0123456789abcdefgh
的范围是十八进制数字(基数为18的数字),所以你可以这样做:
function getCharacter() {
return Math.floor(Math.random() * 18).toString(18);
}
现在做14-16次:
for( var str="", i=0, l=14+Math.floor(Math.random()*3); i<l; i++) {
str += getCharacter();
}
答案 1 :(得分:2)
这将返回一个随机长度为14-16的字符串
function getRandomString(min, max) {
num= Math.ceil(Math.random()*3)+14;
var text="";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
for( var i=0; i < num; i++ )
{
text += possible.charAt(Math.floor(Math.random() * possible.length));
}
}
也请参考此Generate random string/characters in JavaScript
编辑:
<html>
<head>
</head>
<body>
<input type="Textbox" id="pwbx" />
<button OnClick="GetRandom()" type="button">generate</button>
<script>
function GetRandom(min, max) {
num= Math.ceil(Math.random()*3)+14;
var text="";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
for( var i=0; i < num; i++ )
{
text += possible.charAt(Math.floor(Math.random() * possible.length));
}
document.getElementById("pwbx").value=text ;
}
</script>
</body>
</html>
答案 2 :(得分:1)
function get(str1){
var arr = str1.split("")
arr.sort(function(){ return Math.random() - 0.5;})
var str = arr.join("");
return str
}
get('abcdefgh0123456789')
答案 3 :(得分:0)
使用此
var chars=['a','b','c'];
var number=getRandomInt(14, 16);
var result=randomString(number, chars)
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}
function randomString(length, chars) {
var result = '';
for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
return result;
}
答案 4 :(得分:0)
只需随意做一下你的字符长度。然后迭代多次获得随机字符。
var myString = '';
var myStringLength = 14 + (Math.random() * 2); // characters
for (var i = 0; i<myStringLength; i++) {
var n= Math.floor(Math.random()*62);
if(n<10) myString += n; //1-10
else if(n<36) myString += String.fromCharCode(n+55); //A-Z
else myString += String.fromCharCode(n+61); //a-z
}