ASP中Split函数的实例

koko8 2006-02-24 10:58:15
作者:帅青蛙 来源:希赛 http://www.csai.cn 2006年02月23日

  大家有碰到过要想取一字符串里的某些值而无从下手?有没有觉得看书或教材对split的写法糊里糊涂……如果有此疑问的话,请看下面我对例子的解释,相信您会对这个有一定的了解。
  我先介绍一下Split函数的用法:

  返回值数组 = Split("字符串","分割符")

  假设变量strURL保存着URL值,如strURL = "ftp://username:password@server",这是我们在IE 中登录到 FTP上时的 URL形式,如果我们想把其中的username和password取出来的话,该怎么办呢?当然解决的方法有许多,在这里我们只介绍用Split来解决的方法。首先,我们找出分割符。我们发现在这个字符串中,username和password之间有个冒号把它们隔开了,所以我们就把这个冒号作为Split函数的"分割符"来分割整个字符串,最后达到取username和password的目的。代码如下:
strURL = "ftp://username:password@server"
aryReturn = Split(strURL,":")

  这样我们就把字符串用冒号分割开了,分割后的结果保存在aryReturn中(aryReturn是一个数组)。

  下面我们就来看看这个最终的结果吧,因为Split函数最终返回的是一个数组,所以我们主要就是显示数组中的元素了,涉及到一些跟数组有关的函数: IsArray()判断是否数组的函数,LBound()取数组的下标,UBound()取数组的上标。

Response.Write("返回值是否为数组:" & IsArray(aryReturn) & "<br>")
For i = LBound(aryReturn) To UBound(aryReturn)
Response.Write("返回值数组中的元素[" & i & "]:" & Right(aryReturn(i),Len(aryReturn(i))-2) & "<br>")
Next

  通过以上代码,字符串被分割成三个部分,:"ftp"、"//username"、"password@server"。我们要取username和password需要进一步的处理,我就不多说了,直接给出代码。

  取username的代码:strUsername = Right(aryReturn(1),Len(aryReturn(1))-2)

  取password的代码:'取password我们又用到Split函数了,不过这回的分割符是"@" 。

aryTemp = Split(aryReturn(2),"@")
strPassword = aryTemp(0)
'我们可以顺便取出server
strServer = aryTemp(1)

  分割符可以是一个字符,也可以是一个字符串。如:
aryReturn = Split("ftp://username:password@server,"//")

  注意:

  1.一般来说,ASP 中可以不声明变量,使用 Split函数时,如果要声明返回值的变量的话,只能用 Dim,而不能用 Redim。虽然说其返回是一个数组,应该是用 Redim也可以,但在实际使用过程中是不行的。不知是怎么回事?

  2. 如果用Split函数来分割一个字符串中并不存在的分割符时,将返回整个字符串,其结果是只有一个元素的数组。

  后话,对于要取一字符串中的某些字符或部分,只要抓住规律,再加上用split就可以很好做成各种效果。写此文,希望对大家的学习有所帮助,同时也希望各路高手能够指点一二!



...全文
148 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
KimSoft 2006-02-24
  • 打赏
  • 举报
回复
split的一个小应用:
http://blog.csdn.net/KimSoft/archive/2006/01/20/585281.aspx


'-----------------------------------------------------------------------------
'名称 Count
'描述 取某个字符或字符串在另一个字符串中出现的次数
'参数
' stringBeSearched As String 接受搜索的字符串表达式
' stringToFind As String 要搜索的字符串表达式
'返回 Long 出现的次数,如果没有返回0
'异常 参数为Null返回0
'整理 KimSoft
'时间 2006-01-20
'-----------------------------------------------------------------------------
Function Count(stringBeSearched, stringToFind)
Count = 0
If IsNull(stringBeSearched) Or IsNull(stringToFind) Then Exit Function
Count = UBound(Split(stringBeSearched, stringToFind))
End Function

28,406

社区成员

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

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