Instr函数 可以判断一字符串中是否包含另一字符串。
也就是说将用户对各个栏目的权限在后台以多项选则添加到数据库中,我们知道这样的提交asp是处理成一个逗号分割的字符串;
这样登录验证成功后,将权限这个字段的字符串放到session中,然后就可以用Instr函数来判断是否有对应权限的字符串,无则无权限。
代码如下:
〈%
quanxian="学生,老师,主任,校长"
yonghu="老师"
response.write (InStr(quanxian,yonghu) & "<br />")
If (InStr(quanxian,yonghu)>0) Then
response.write yonghu
Else
response.write "权限不对"
End if
%〉
------InStr 函数 -------------------------------
返回某字符串在另一字符串中第一次出现的位置。
InStr([start, ]string1, string2[, compare])
start
可选项。用于设置每次搜索的开始位置。如果省略,将从第一个字符的位置开始搜索。如果 start 包含 NULL,则会出现错误。如果已指定 compare,则必须要有 start 参数。
string1
必选项。接受搜索的字符串表达式。
string2
必选项。要搜索的字符串表达式。
compare
可选项。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。如果省略,将执行二进制比较。
compare 参数可以有以下值:
InStr 函数返回以下值:
注:使用instr函数时必须给两个字符串加上双引号。
多人认为InStr 和 InStrRev 的值是一样的,觉得很奇怪。
比如 InStrRev("1234567cike.org","cike.org") 和 InStr("1234567cike.org","cike.org") 的值都是8
的确,在上面这个情况下,他们俩的值是一样的,让我们来仔细看看。
官方说明中 InStr 是返回某字符串在另一字符串中第一次出现的位置 。
还有另一个类似的函数叫 InStrRev,官方说明中是返回某字符串在另一个字符串中出现的从结尾计起的位置。
认为 InStrRev("1234567890abcde1234","abcde") 的值是 5,是从后往前数,其实这是错误的
正确的说明是, InStrRev 还是从左往右算位置,但是查找比较的时候是从尾部开始比较的(从右开始)
比如 InstrRev("123cike.org1234cike.org","cike.org") 的值是 16,因为存在两个"abcde"
那么 Instr("123cike.org1234cike.org","cike.org") 的值是 4
这下明白 Instr,InstrRev 的区别的了吧