生成随机数字和字母

时间:2015-02-12 08:47:40

标签: javascript php

我需要一个PHP / JavaScript中的简单脚本来生成12个随机字母数字, 包含8个数字和4个字母。

如:

923x0w357t9w
74qw0875s3q7

有人帮我解决这个问题吗?

6 个答案:

答案 0 :(得分:1)

为此,您可以拥有一个包含所有字母和数字的数组,然后使用Math.random 我们可以像这样生成随机的AlphaNumeric值

function getAlphaNumeric(){
  var arr =['a','b', 'c', 'd','e','f','g','h','i', 'j', 'k', 'l', 'm', 'n','o','p','q', 'r','s','t','u','v','w','x','y','z'],
 letterUsed=0,numberUsed=0,i=0, randomStr='';
 for(;i<12;i++){
  if((Math.floor(Math.random()*2) === 0 && numberUsed <8) || letterUsed>=4){
      randomStr += Math.floor(Math.random()*10);
      numberUsed++;
  }else{    
    randomStr += arr[Math.floor(Math.random()*26)];
    letterUsed++;
  }
}
return randomStr
}
getAlphaNumeric();

答案 1 :(得分:1)

PHP解决方案

要实现此目的,首先要创建一个包含8个字符的随机数字符串。然后创建一个4个字母的随机字符串。最后一步是改变连接结果。

试试这个,

$randNumber = rand(00000000,99999999); // Numeric string with 8 numbers

$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
$length = 4;
for ($i = 0; $i < $length; $i++) {
    $randomString .= $characters[rand(0, $charactersLength - 1)]; // 4 letter string
}

$result = str_shuffle($randNumber.$randomString); // Result
echo $result;

答案 2 :(得分:0)

Laravel有一个很好的功能,这里是代码:

<?php
    function quickRandom($length = 16)
    {
        $pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

        return substr(str_shuffle(str_repeat($pool, $length)), 0, $length);
    }

    function random($length = 16)
    {
        if (function_exists('openssl_random_pseudo_bytes'))
        {
            $bytes = openssl_random_pseudo_bytes($length * 2);

            if ($bytes === false)
            {
                throw new \RuntimeException('Unable to generate random string.');
            }

            return substr(str_replace(array('/', '+', '='), '', base64_encode($bytes)), 0, $length);
        }

        return quickRandom($length);
    }

答案 3 :(得分:0)

这是一个简单密码生成器的JavaScript版本。

function password_generator( len ) {
    var length = (len)?(len):(10);
    var string      = "abcdefghijklmnopqrstuvwxyz";
    var stringUpper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    var numeric = '0123456789';
    var punctuation = '!@#$%&*()_+?=';
    var password = "";
    var character = "";
    var crunch = true;
    function getRandomInt(min, max) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    }
    while( password.length<length ) {
        entity1 = Math.ceil(string.length * Math.random()*Math.random());
        entity2 = Math.ceil(stringUpper.length * Math.random()*Math.random());
        entity3 = Math.ceil(numeric.length * Math.random()*Math.random());
        entity4 = Math.ceil(punctuation.length * Math.random()*Math.random());
        hold = string.charAt( entity1 );
        character += hold;
        character += numeric.charAt( entity2 );
        character += stringUpper.charAt( entity3 );
        character += (getRandomInt(1, 4) == 1 ? punctuation.charAt( entity4 ) : '');
        password = character;
    }
    return password;
}

http://jsfiddle.net/WebJedi/ywd1n12d/1/

答案 4 :(得分:0)

您可以尝试此代码..

function myFunction() {
    var chars = "abcdefghiklmnopqrstuvwxyz";
    var nos = "0123456789";
    var string_number = 8;
    var string_char = 4;
    var randomstring = '';
    for (var i=0; i<string_number; i++) {
        var rnum = Math.floor(Math.random() * chars.length);
        randomstring += chars.substring(rnum,rnum+1);
    }
    for (var i=0; i<string_char; i++) {
        var rnum = Math.floor(Math.random() * nos.length);
        randomstring += nos.substring(rnum,rnum+1);
    }
    for (var i=0; i<12;i++){
        var a = randomstring.split("");
        var j = Math.floor(Math.random() * (i + 1));
        var tmp = a[i];
        a[i] = a[j];
        a[j] = tmp;
    }
        var result = new Array(a.join(""));                  
        console.log(result);

}

答案 5 :(得分:0)

如果你正在寻找一种在PHP中使用它的方法:

$alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
    $rand = array(); 
    $alphaLength = strlen($alphabet) - 1;
    for ($i = 0; $i < 10; $i++) {
        $n = rand(0, $alphaLength);
        $rand[] = $alphabet[$n];
    }
    echo implode($rand); 
相关问题