几个小函数,求高手指教哦???在线等待
得到安全字符串,在查询中或有必要强行替换的表单中使用
' ============================================
Function GetSafeStr(str)
GetSafeStr = Replace(Replace(Replace(Trim(str), "'", ""), Chr(34), ""), ";", "")
End Function
' ============================================
' 把字符串进行HTML解码,替换server.htmlencode
' 去除Html格式,用于显示输出
' ============================================
Function outHTML(str)
Dim sTemp
sTemp = str
outHTML = ""
If IsNull(sTemp) = True Then
Exit Function
End If
sTemp = Replace(sTemp, "&", "&")
sTemp = Replace(sTemp, "<", "<")
sTemp = Replace(sTemp, ">", ">")
sTemp = Replace(sTemp, Chr(34), """)
sTemp = Replace(sTemp, Chr(10), "<br>")
outHTML = sTemp
End Function
' ============================================
' 去除Html格式,用于从数据库中取出值填入输入框时
' 注意:value="?"这边一定要用双引号
' ============================================
Function inHTML(str)
Dim sTemp
sTemp = str
inHTML = ""
If IsNull(sTemp) = True Then
Exit Function
End If
sTemp = Replace(sTemp, "&", "&")
sTemp = Replace(sTemp, "<", "<")
sTemp = Replace(sTemp, ">", ">")
sTemp = Replace(sTemp, Chr(34), """)
inHTML = sTemp
End Function
小弟经常在新闻发布后台中见到这几个函数,虽然都是一知半解,却从来没有完全吃透,今天求高手指教,给小弟解释一下这几个函数,我大部分都是能看得懂函数体,却不明白这个函数的真正作用,&,<...这些到底是什么东西啊,求高手详细指教,万分感谢,在比如Replace(Trim(str), "'", "")到底这样替换的目的是什么,有什么作用阿
问题点数:0、回复次数:2Top
1 楼spec_lc(初学ASP)回复于 2005-04-03 20:20:03 得分 0
sTemp = Replace(sTemp, "&", "&")
从数据库读出来时,如果结果里有&,<,>等符号,会自动解释成html
所以要把这些符号替换成不被解释的符号,你就可以在返回的结果中看到&,<,>了
Replace函数返回一个字符串,该字符串中指定的子字符串已被替换成另一子字符串,并且替换发生的次数也是指定的。语法Replace(expression,find,replacewith[,start[,count[,compare]]])Replace函数语法有如下几部分:部分描述expression必需的。字符串表达式,包含要替换的子字符串find必需的。要搜索到的子字符串replacewith必需的。用来替换的子字符串start可选的。在表达式中子字符串搜索的开始位置。如果忽略,假定从1开始count可选的。子字符串进行替换的次数。如果忽略,缺省值是?,它表明进行所有可能的替换compare可选的。数字值,表示判别子字符串时所用的比较方式。关于其值,请参阅“设置值”部分设置值compare参数的设置值如下:常数值描述vbUseCompareOption?使用OptionCompare语句的设置值来执行比较vbBinaryCompare0执行二进制比较vbTextCompare1执行文字比较vbDatabaseCompare2仅用于MicrosoftAccess。基于您的数据库的信息执行比较返回值Replace的返回值如下:如果Replace返回值expression长度为零零长度字符串(""expression为Null一个错误find长度为零Expression的复本replacewith长度为零expression的复本,其中删除了所有出现的find的字符串start>Len(expression)长度为零的字符串countis0Expression.的复本说明Replace函数的返回值是一个字符串,但是,其中从start所指定的位置开始,到expression字符串的结尾处的一段子字符串已经发生过替换动作。并不是原字符串从头到尾的一个复制。请参阅Filter函数Top
2 楼liuxiaoyi666(MSMVP 小猪妹荣誉马甲之八卦兔子)回复于 2005-04-03 20:21:19 得分 0
< > & 你用htmlencode就知道了,上面不都写了么??Top




