规则在字符串str中间插入一个字符串strs="abcd",使得字符串strs不在任意标签(如:"<img>"、"<a>"、"<strong>"、"<p>"、"</p>"等等)的“<”和“>”之间。
使用ASP实现例子如下:
- str="gdfgdggd<p>A:好无聊啊……我给你讲笑话吧!</p><p align=""center""><img src=""images/a.gif"" alt="""" border=""0""/></p><p>A:有一回,土豆和年糕打架,土豆很生气,一脚就把年糕踢到海里了。</p><p>Q:哦……然后呢?</p><p>A:讲完了阿,下面讲第二个。</p><p>Q(欲哭无泪啊……)</p><p>A:从前有一对<a href=""#"">恋人</a>,在他们决定结婚的时候,那男生需要服兵役。他们便到了海边,说好三年后的这一天在海边相见,男孩并给了女孩一枚戒指作为婚戒。可是,三年过去了,那女孩并没有等到男孩,她很伤心,便把戒指丢进了大海里。其实是女孩误解了约会地点,男孩一直在等她。可是就这样错过了,成为了遗憾。男孩也很伤心,便决定住在海边等女孩。有一天他出去打鱼,你猜他打到了什么?。</p><p>Q:戒指吗?</p><p>A:不是拉!是年糕阿!哈哈哈哈哈…………</p><p>Q:真冷啊……</p><p align=""center""><img src=""images/b.gif"" alt="""" border=""0""/></p><p>A:还是那对恋人。有一天男孩听说女孩要<a href=""#"">结婚</a>了,十分伤心,便把自己那枚婚戒也丢进了海里。几天后,他打了一条鱼吃。刚夹了一口鱼,便咬到一个很硬的东西,吐出来一看,你猜他看到了什么</p><p>Q:<strong>戒指</strong>吗?</p><p>A:不是!</p><p>Q:年糕吗?</p><p>A:哈,怎么会是年糕呢。</p><p align=""center""><img src=""images/c.gif"" alt="""" border=""0""/></p><p>Q:那是什么?</p><p>A:鱼骨头呗!</p><p>终于Q挺不住了,感冒了一个多礼拜……</p>"
- Dim regEx, Match, Matches '建立变量。
- Set regEx = New RegExp '建立正则表达式。
- regEx.Pattern = "(?:<[^<>]+>)" '设置模式。
- regEx.IgnoreCase = true '设置是否区分字符大小写。
- regEx.Global = True '设置全局可用性。
- Set Matches = regEx.Execute(str) '执行搜索。Matches(1).SubMatches(0)
- znum=Matches.count
- Randomize
- RndNumber=int((znum+1)*rnd)
- i=0
- RetStr=""
- For Each Match in Matches '遍历匹配集合。
- if i=RndNumber then
- str=mid(str,1,Match.FirstIndex)"<font color='red'>"&b"</font>"&mid(str,Match.FirstIndex+1,len(str))
- exit for
- end if
- i=i+1
- Next
- response.Write str
缺陷:不能用table表格
不然会有问题,因为可能会插在table之间或者tr之间,而不一定在td之间了