问一个asp中和replace有关的问题

来源:百度知道 编辑:UC知道 时间:2024/05/18 00:43:26
function replacestr(str)
replacestr=replace(replacestr,"<","<")
replacestr=replace(replacestr,">",">")
replacestr=replace(replacestr,"&","&")
replacestr=replace(str,chr(32)," ")
replacestr=replace(replacestr,vbcrlf,"<br>")
end function
本来想用上面的方法来过滤文本域里内容显示时
有的会被解释
我是这么想的
在html代码里都会有<>和& 因此我想在过滤这些字符应该不会有出错了吧
先不说上面方法可不可以
就 replacestr=replace(replacestr,"<","<")
没用哦~~~
怎么会不能<变成<呢
后来我只好用
function replacestr(str)
replacestr=replace(replacestr,vbcrlf,"<br>")
end function
response.write(replacestr(server.htmlencode(str)))
这样了
大家给我看看这样又有没有什么漏掉的地方

其实替换html的标签符号就可以防止编译了,也就是
你上面所想,把<>这些替换掉
而<的htmlcode是 &_l_t_; (删除_)
>的则是 &_g_t_;_ (删除_)
所以,你需要替换一下就好了。

还有,函数逻辑有问题
function replacestr(str)
replacestr=replace(replacestr,"<","<") 'replacestr此时无意义
replacestr=replace(replacestr,">",">")
replacestr=replace(replacestr,"&","&")
replacestr=replace(str,chr(32)," ") '这里重新替换str并赋值于replacestr,而之前对于replacestr的操作将无意义。
replacestr=replace(replacestr,vbcrlf,"<br>")
end function

应该为:

function replacestr(str)
replacestr=replace(str,"<","<") '先获得str的值替换,再赋给replacestr
replacestr=replace(replacestr,">",">") '替换replacestr内容
replacestr=replace(replacestr,"&","&") '同上
replacestr=replace(replacestr,chr(32)," ")
replacestr=replace