如何在Vb.net中生成随机(a-z)len = 4和(0-9)len = 2

时间:2015-02-04 08:04:20

标签: vb.net

我有一个问题,用VB.Net生成任何字符,我有PHP版本的代码。如何在VB.Net中创建它?

这是我的PHP代码:

function randomcodeAlpha($len="4") {
    $code = NULL;
    for($i=0;$i<$len;$i++) {
        $char = chr(rand(48,122));
        while(!ereg("[A-Z]", $char)) {
            if($char == $lchar) { continue; }
            $char = chr(rand(48,90));
        }
        $pass .= $char;
        $lchar = $char;
    }
    return $pass;
} 

function randomcodeNumeric($len="2") {
    $code = NULL;
    for($i=0;$i<$len;$i++) {
        $char = chr(rand(48,122));
        while(!ereg("[0-9]", $char)) {
            if($char == $lchar) { continue; }
            $char = chr(rand(48,90));
        }
        $pass .= $char;
        $lchar = $char;
    }
    return $pass;
}

1 个答案:

答案 0 :(得分:2)

这应该这样做:

Private Sub Main()
    Dim str As string = RandomString(4, _chars)
    Dim num As string = RandomString(2, _nums)
End Sub

Private Const _chars As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Private Const _nums As String = "0123456789"
private shared readonly _randLock = new Object()
private shared readonly _rnd = New Random()

Private Shared Function RandomString(size As Integer, chars As String) As String
    Dim arr = New Char(size - 1) {}

    For i As Integer = 0 To size - 1
        SyncLock _randLock
           arr(i) = chars(_rnd.Next(chars.Length))
        End SyncLock 
    Next

    Return New String(arr)
End Function