asp 在字符串中插入字符串的定位问题,高手指点

hk207 2010-03-24 05:07:41


比如字符串:str="
<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>
"

其中,"<img>"、"<a>"、"<strong>"、"<p>"等标签个数不固定,标签内容不固定(如:<p>和<p align="center">等)。字符串str的长度也不固定。

现在的问题是如何可以在字符串str中间插入一个字符串strs="abcd",使得字符串strs不在任意标签(如:"<img>"、"<a>"、"<strong>"、"<p>"、"</p>"等等)的“<”和“>”之间。
...全文
578 36 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
hk207 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 35 楼 wcwtitxu 的回复:]
VBScript code

Dim a, b, c

a = "<p>asdfa<a>sdf<br/>afsd</a>asdfas</p>"
b = "xxx"

With New RegExp
.Pattern = "^[\d\D]{" & (Len(a)\2) & ",}?(?![^<]*>)(?!(?:(?!<a\b)[\d\D])*</a>)"
……
[/Quote]

太厉害啦!!就是这样!

可惜结贴的时候给错分了,本来分是给你的,结果给了下一楼的了!
wcwtitxu 2010-04-26
  • 打赏
  • 举报
回复

Dim a, b, c

a = "<p>asdfa<a>sdf<br/>afsd</a>asdfas</p>"
b = "xxx"

With New RegExp
.Pattern = "^[\d\D]{" & (Len(a)\2) & ",}?(?![^<]*>)(?!(?:(?!<a\b)[\d\D])*</a>)"
c = .Replace(a, "$&" + Replace(b, "$", "$$"))
End With

Response.Write c
hk207 2010-04-26
  • 打赏
  • 举报
回复
给错分了,能改么?给21楼的分错给到22楼了!
hk207 2010-04-26
  • 打赏
  • 举报
回复
得分的两个都可以,都不错!

只不过都没有完善以下的小问题:

[Quote=引用 25 楼 hk207 的回复:]
能不能完善一下,让插入的字符串既不在html标签里,也不在<a>和</a>之间??
[/Quote]
  • 打赏
  • 举报
回复
做人这么久解决也不说声?也不结贴?
moray126 2010-04-04
  • 打赏
  • 举报
回复
服务器端执行,还是在客户端执行?
这里是javascript专区,考虑用javascript执行?
  • 打赏
  • 举报
回复
上面代码有一个缺陷,就是不能用table表格
不然会有问题,因为可能会插在table之间或者tr之间,而不一定在td之间了
  • 打赏
  • 举报
回复
随机插入的
  • 打赏
  • 举报
回复
告诉过用正则匹配然后替换的
你咋就不自己动手去试呢??

代码如下:

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
qq373591361 2010-04-04
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分
  • 打赏
  • 举报
回复
LS的是梦游吧,这里是ASP版,不是javascript专区
hk207 2010-04-02
  • 打赏
  • 举报
回复
能不能完善一下,让插入的字符串既不在html标签里,也不在<a>和</a>之间??
hk207 2010-03-30
  • 打赏
  • 举报
回复
怎么没有人来了?
hk207 2010-03-29
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 wcwtitxu 的回复:]
VBScript code

Dim a, b, c

a = "<p>asdfasf<br/>asdfas</p>"
b = "xxx"

With New RegExp
.Pattern = "^[\d\D]{" & (Len(a)\2) & ",}?(?=[^>]*<)"
c = .Replace(a, "$&" + Replace(……
[/Quote]


这个不错。能不能完善一下,让插入的字符串既不在html标签里,也不在<a>和</a>之间??
lingyueJYY 2010-03-26
  • 打赏
  • 举报
回复
看不大明白,笑话挺冷的
wcwtitxu 2010-03-26
  • 打赏
  • 举报
回复

Dim a, b, c

a = "<p>asdfasf<br/>asdfas</p>"
b = "xxx"

With New RegExp
.Pattern = "^[\d\D]{" & (Len(a)\2) & ",}?(?=[^>]*<)"
c = .Replace(a, "$&" + Replace(b, "$", "$$"))
End With


Response.Write c
shan1119 2010-03-25
  • 打赏
  • 举报
回复

<script type="text/javascript">
var str2="abcd";
var str="<p>0</p><p>1</p><p>2</p>";
var obj=document.createElement("div");
obj.innerHTML=str;

var demo=obj.getElementsByTagName("p");
var L=demo.length;
var r=Math.floor(Math.random()*L);
obj.insertBefore(document.createTextNode(str2),demo[r]);
str=obj.innerHTML;
alert(str);
</script>
wcwtitxu 2010-03-25
  • 打赏
  • 举报
回复
还是不要麻烦了,加在开头或结尾得了
wcwtitxu 2010-03-25
  • 打赏
  • 举报
回复
随机位置插入吗?
mousekidcn 2010-03-25
  • 打赏
  • 举报
回复
简单来说,str="aaa"+strs+"bbb"
如果strs="ccc"
则如果打印str的话,str就为"aaacccbbb"

这样子的,可以否?
加载更多回复(16)

28,409

社区成员

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

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