关键字自动变色的问题

showlin 2006-10-13 11:11:21
有函数ChangeColor(str,key),str是原字符串,key是包含N个关键字的数组

代码如下
function ChangeColor(str,key)
dim temp,num,i
temp=str
num=ubound(key)
for i=0 to num
temp=replace(temp,key(i),"<font color=CC0033 style=""background-color:#ffff00"">" & key(i) & "</font>")
next
changecolor=temp
end function

例如字符串www.baidu.com,关键字baidu,替换后结果是www.<font color=CC0033 style="background-color:#ffff00">baidu</font>.com,网页上显示baidu即为黄地红字

但是…………
字符串www.baidu.com,关键字两个:baidu和color,替换后结果就变成了
www.<font <font color=CC033 style="background-color:#ffff00">color</font>=CC033 style="background-<font color=CC033 style="background-color:#ffff00">color</font>:#ffff00">baidu.com

两次替换的结果
如何解决?请给可用代码。
鉴于楼主以前也问过这类问题,无人有给我正确答案,估计是人品问题,因此大放血200,不够的话,开贴再给。
帮顶有分,只说“用正则的”,请回家睡觉先…………
...全文
335 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
slayerbb 2006-10-13
  • 打赏
  • 举报
回复
啊?居然发了两个贴,晕

hehe
我也在奇怪呢:)

showlin 2006-10-13
  • 打赏
  • 举报
回复
ok thanks
多谢lxrxyls(行云流水)
请至
http://community.csdn.net/Expert/topic/5079/5079624.xml?temp=.6197321
接分
showlin 2006-10-13
  • 打赏
  • 举报
回复
啊?居然发了两个贴,晕
李向荣 2006-10-13
  • 打赏
  • 举报
回复
function ChangeColor(str,key)
dim temp,num,i
temp=str
num=ubound(key)
for i=0 to num
temp=replace(temp,key(i),"!@#$%^&*" & key(i) & "*&^%$#@!")
next
temp=replace(temp,"!@#$%^&*" ,"<font color=CC0033 style=""background-color:#ffff00"">")
temp=replace(temp,"*&^%$#@!","</font>")
Changecolor=temp
end function

其实你的问题就是出在,你所要替换成的内容可能包含你所要替换的内容,这样如果多次替换就会造成不想要的,结果。我也不知道你要说的关键字有什么特点,所以就用特殊字符先代替一下,从而避免你所说的情况发生。你可以把特殊字符串换成你认为不可能在关键字里出现的就可以了。
showlin 2006-10-13
  • 打赏
  • 举报
回复
…………回复在哪???
-_-b
net205 2006-10-13
  • 打赏
  • 举报
回复
还是沙发.

5079643帖子已经给你回复,
我的理解,应该可以解决你的问题

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧