■■能不能限制REPLACE的替换范围???

ok1996 2005-12-07 01:07:02
有一个字符串有100个字母,我要将第30--70字母的"H"换成"Y"
而不影响其余范围的字母,怎么做?
...全文
248 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sky0120 2006-03-28
  • 打赏
  • 举报
回复
UP
md5e 2006-03-28
  • 打赏
  • 举报
回复
strm=REPLACE(mid(str,30,70-30),"h","y")
把上面的换一下
md5e 2006-03-28
  • 打赏
  • 举报
回复
strl=left(str,30)
strr=right(str,len(str)-70)
strm=REPLACE(mid(str,30,70-30)
str=strl+strm+strr
nora2008 2006-03-28
  • 打赏
  • 举报
回复
看来楼主是不是想做小偷程序,我把一个小偷程序的代码发到你的邮箱了,给分
jspadmin 2005-12-07
  • 打赏
  • 举报
回复
呵呵,楼上已经写出来了。思路就是先截取30-70个字符子串,然后进行替换,替换完后,再将0-29的字符子串+替换后的30-70字符子串+71-100字符子串组合起来,就完事了。
starytx 2005-12-07
  • 打赏
  • 举报
回复
如果你的字符串长度刚好是100,用下边的试试
str=left(str,29)+replace(mid(str,30,41),"H","Y")+right(str,30)
KimSoft 2005-12-07
  • 打赏
  • 举报
回复
Function ReplacePlus(Expression, Find, ReplaceWith, Start, Length)
Expression = Expression & ""
ReplacePlus = Expression
If Not IsNumeric(Start) Or Start < 1 Then Exit Function
If Not IsNumeric(Length) Or Length < 0 Then Exit Function

Find = Find & ""
ReplaceWith = ReplaceWith & ""

Dim ExpressionLength : ExpressionLength = Len(Expression)
If Start > ExpressionLength Then Start = ExpressionLength
If Length > ExpressionLength - Start Then Length = ExpressionLength - Start

ReplacePlus = Left(Expression, Start - 1) & _
Replace(Mid(Expression,Start, Length) , Find, ReplaceWith) & _
Right(Expression, ExpressionLength - (Start + Length))
End Function

Response.Write(ReplacePlus("1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890","1", "x", 30, 40))

试试这个,写得不好,可能会有BUG(字符位置的位置+1 -1问题),望指正。
注意:最后一个参数是length,如果取30到70,应该写成 30, 40的形式,当然你也可以变通一下
ok1996 2005-12-07
  • 打赏
  • 举报
回复
我这样问大家明白我的意思吗?

28,406

社区成员

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

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