网络编程
位置:首页>> 网络编程>> Asp编程>> 8个asp生成随机字符的函数(4)

8个asp生成随机字符的函数(4)

 来源:asp之家 发布时间:2007-08-04 10:17:00 

标签:随机函数,随机,随机字符,函数


7.
功能说明:取指定范围内的指定个数的随机数,无重复数

指定5个参数:
iLessCount----取最少n个数(Integer)
iMostCount----取最多n个数(Integer)
iLessNumber----取数最小范围(Integer)
iMostNumber----取数最大范围(Integer)
cutZero----是否要剔除无效零(Boolean)[例:true-->3,false-->003]


Function rndNumber(iLessCount,iMostCount,iLessNumber,iMostNumber,cutZero)
    If iLessCount = 0 OR iMostCount < iLessCount OR NOT _
    isnumeric(iLessCount) OR NOT isnumeric(iMostCount) OR NOT _
    isnumeric(iLessNumber) OR NOT isnumeric(iMostNumber) _
    OR (iLessNumber = iMostNumber) Then Exit Function
    ’最少个数零、最大个数小于最小个数、4个参数不为数字、最小数等于最大数就退出函数
    Randomize
    Dim iRnd,sZero
    Dim sOutput
    Dim iLength
    Dim sTempOutput
    Dim i
    Dim iCount
    iCount = int(rnd*(iMostCount-iLessCount+1))+iLessCount’计算随机取几个数
    iLength = len(iMostNumber)*iCount+(iCount*2)
    ’长度为最大数长度乘以随机个数加上随机个数乘以2(每个数前后各一个逗号,用来全字匹配)
    Do While len(sOutput) < iLength’输出小于长度时循环
        iRnd = int(rnd*(iMostNumber-iLessNumber+1))+iLessNumber’取随机数
        If Len(iRnd) < len(iMostNumber) Then’随机数长度小于取最大数长度
            For i = 1 To len(iMostNumber) - len(iRnd)’那么就要在首位加缺少的零
                sZero = sZero & "0"
            Next
        End If
        iRnd = sZero & iRnd’把零加在随机数前面
        sZero = empty’清空首位零,循环后还要调用
        If Instr(sOutput,","&iRnd&",") < 1 Then’不在输出变量中就放进去0
            sOutput = sOutput & "," & iRnd & ","
        End If
    Loop
    
    sOutput = mid(sOutput,2,len(sOutput)-2)’去掉首尾逗号
    sOutput = Replace(sOutput,",,",",")’把双逗号替换成单逗号
    
    If cutZero = true Then’如果要去除首位多余的零
        sTempOutput = split(sOutput,",")’拆分为数组
        sOutput = empty’清空,后面要重新放入
        For i = 0 To Ubound(sTempOutput)’逐个转换成数值后放入
            sOutput = sOutput & Clng(sTempOutput(i)) & ","
        Next
        sOutput = mid(sOutput,1,len(sOutput)-1)’去掉末尾逗号
    End If
    rndNumber = sOutput’输出
End Function


使用方法:
Response.Write rndNumber(1,3,5,15,false)

8.功能说明:生成随机字符串,包括大小写字母,数字,和其它符合,常用于干扰码。

参数说明:stars--干扰码最小长度,ends--干扰码最大长度


function rndcode(byVal stars,byVal ends)
'by 天空诚 from:aspxhome.com
dim rndlen,i
randomize
rndLen = int(stars*rnd+ends-stars)
for i = 1 to rndLen
    randomize    
    rndcode = rndcode & chr(int(127*rnd+1))    
next
end function


使用方法:

response.write rndcode(20,100)


效果图:

上面介绍了8种方法,相信能够满足大部分多随机字符的使用了!

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com