2011-04-21 107 views

回答

4

我想这就是你要找的。 Generate a Random Letter in ASP

Function RandomNumber(LowNumber, HighNumber) 
    RANDOMIZE 
    RandomNumber = Round((HighNumber - LowNumber + 1) * Rnd + LowNumber) 
End Function 

分配功能到一个变量,并在LowNumber通过(26)和 的HighNumber(97)和转换值返回到它 表示字符:

RandomLetter = CHR(RandomNumber(97,122)) 

你会希望你的范围是大写字母在65和90之间(A和Z)。

2

使用随机数......这样的:

Function RandomNumber(LowNumber, HighNumber) 
    RANDOMIZE 
    RandomNumber = Round((HighNumber - LowNumber + 1) * Rnd + LowNumber) 
End Function 

,然后从1-26使用它,使用“如果”或开关,把信。

+0

你忽略了'RandomLetter = CHR(RandomNumber(97,122))'作为如何使用功能... ;-P的例子 – stealthyninja 2011-04-21 22:04:56

+0

是的,谢谢 - 我已经看了一段asp经典代码已经有一段时间了,我并没有真正使用过asp。大声笑。 – fingerman 2011-04-21 22:12:37

4

这是另一种不用if/switch就可以查看的方法。

String alphabet = "abcdefghijklmnopqrstuvwxyz"; 
Random rand = new Random(); 
char randomCharacter = alphabet[rand.Next(0, 25)]; 
+0

这是我的答案。 +1给你。 – David 2011-04-21 22:02:42

+7

@David:除了_Classic ASP _... -_- – stealthyninja 2011-04-21 22:06:05

1

我来到一个解决方案,你可以轻松控制什么是你的发电机的有效值。

Function CreateRandomString(iSize) 
    Const VALID_TEXT = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" 
    Dim sNewSearchTag 
    Dim I 

    For I = 0 To iSize 
     Randomize 
     sNewSearchTag = sNewSearchTag & Mid(VALID_TEXT,Round(Rnd * Len(VALID_TEXT)),1) 
    Next 

    CreateRandomString = sNewSearchTag 
End Function 
1

罗杰里奥的回答是不错,但圆(RND *莱恩(VALID_TEXT))可以为0,如果你想使用此功能中秋节不能从0修复它的启动。

0

罗杰Baretto的答案固定杰姆的提示))

Function RandomString(iSize) 
    Const VALID_TEXT = "abcdefghijklmnopqrstuvwxyz1234567890" 
    Dim Length, sNewSearchTag, I 

    Length = Len(VALID_TEXT) 

    For I = 1 To iSize 
     Randomize() 
     sNewSearchTag = sNewSearchTag & Mid(VALID_TEXT, Int(Rnd()*Length + 1), 1) 
    Next 

    RandomString = sNewSearchTag 
End Function