Asp Split函数之使用多个分割符的方法

首先,我在知道Split这个函数的作用,是把一个字符串按指定的分割符分割成一个字符串数组。

ASP里有这个Split,是这样定义的dim Split(byval source as string ,byval str as string) as string()
  source是源字符串,str是分隔符
  我这里用了VB.net的写法,方便说明返回值的类型和参数的类型。
  大家一看就明白怎么用了。

在C#里,我们是这样用的
  string[] Split(string source,char[] char)
  在这里Char是一个Char[]数组,我们在使用时可以这样设定new char[]{','} 这样就只定义了一个分割符,还可以用new char[] {',','.','#'}来定义多个分割符。这在C#里是很简单的一种用法。

可以在ASP里要使用多个分割符来分割字符串,应该怎么做呢?
  Asp里的Split只能给一个字符串参数来当分割符。我查阅了一些资料,没有找到ASP里的Split定义多个分割符的方法。
  看来只有自己处理了,最后找出一种方法:先把源字符串里我们认为要被当做分割符的字符都转换成一个特定的字符,比如“,”。然后我们再用这个特定的分割符来进行分割,例子如下:

代码如下:

lcontent=Replace(lcontent,".",",")
lcontent=Replace(lcontent," ",",")
lcontent=Replace(lcontent,"。",",")
lcontent=Replace(lcontent,"、",",")
lcontent=Replace(lcontent,"\",",")
lcontent=Replace(lcontent,"/",",")
lcontent=Replace(lcontent,"#",",")
lcontent=Replace(lcontent,"*",",")
lcontent=Replace(lcontent,"&",",")
lcontent=Replace(lcontent,":",",")
lcontent=Replace(lcontent,";",",")
rec=Split(lcontent,",")

这样就实现了Asp里的Split使用多个分割符的方法了。

学而无思则不进,所以接下来想到了C#里的Split的工作方法。
怎么样能达到不错的效率呢?如果它先用char[0]来分割字符串,然后再用char[1]分割,再用char[2],char[3]... 这样多次分割后再组成一个数组来得到最终的结果。似乎这样做的效率并不高,个人觉得也不会用这种方法来处理。

所以个人觉得C#里的Split可以也是按上面ASP里的方法来实现的Split的char[]分割?先用把source里和Char[]的相同的字符都转成一个特定的分割符,或许不是',' 或许是一个我们字符串里基本不可能出现的Char,这样安全性更高。然后再用这个特定的分割符来进行分割。这样效率应该会高不少。

(0)

相关推荐

  • asp中的Rnd 函数

    Rnd 函数 描述 返回一个随机数. 语法 Rnd[(number)] number 参数可以是任意有效的数值表达式. 说明 Rnd 函数返回一个小于 1 但大于或等于 0 的值. number 的值决定了 Rnd 生成随机数的方式: 如果 number 为 Rnd 生成 小于零 每次都相同的值,使用 number 作为种子. 大于零 序列中的下一个随机数. 等于零 最近生成的数. 省略 序列中的下一个随机数. 因每一次连续调用 Rnd 函数时都用序列中的前一个数作为下一个数的种子,所以对于任何

  • asp与js的类型转换函数介绍

    字符串转化为整数 asp: cint()--注意只能转换短整数值的范围必须在-32768与32767之间,长整数应用clng() 如果输入的不是纯数字字符串或者空字符串,则直接500错误.所以输入前应该检查是否为数字类型. 复制代码 代码如下: Function JCID(ByVal ParaValue)     If ((Not isNumeric(ParaValue)) or (Trim(ParaValue)="")) Then             JCID=0     Els

  • asp实现获取MSSQL数据库表指定条件行数的函数

    复制代码 代码如下: '数据库表行数函数,这是取表的行数 Function GetTblRows(TblName)     '如果TblName表名值为空,则     if TblName="" Then        GetTblRows="未知TblName"     exit Function     Else        set rec = server.createobject("adodb.recordset")        SQ

  • ASP移动文件函数movefile权限不足的替代方法

    这几天做一个项目,是写一个语句,将D盘的文件全部移动到E盘去,在本地XP环境下测试是很好的. 可是放到windows 2003服务器后,提示权限不足. 我的IIS网站目录放在D盘,而E盘只是一个新加卷,有一些文件很大也很多,但是D盘不够用了,所以出此下策. 百度了一下,很多这样的问题,无非就是增加E盘的权限啊,或者是把E盘当作虚拟目录. 可是都不管用,照样提醒,唯一的区别就是我使用的是动态卷,而XP下是基本卷,我不想改变卷盘. 最后找到了下面的办法: 用fso的movefile会出现权限不足的情

  • ASP实现强制图片下载函数

    图片不进行处理,图片默认是用浏览器打开显示,如果希望图片变为下载可以使用以下代码 function downloadFile(strFile) strFilename = server.MapPath(strFile) Response.Buffer = True Response.Clear Set s = Server.CreateObject("ADODB.Stream") s.Open s.Type = 1 on error resume next Set fso = Serv

  • ASP函数大全解析

    Array()  函数返回一个数组 表达式 Array(list) 允许数据类型: 字符,数字均可 实例: <% Dim myArray() For i = 1 to 7 Redim Preserve myArray(i) myArray(i) = WeekdayName(i) Next %> 返回结果: 建立了一个包含7个元素的数组myArray myArray("Sunday","Monday", ... ... "Saturday&quo

  • ASP中实现的URLEncode、URLDecode自定义函数

    在做ajax中的post时,发现在服务器端取得数据时总是乱码,网上看了些解决方法也搞不定,我post过去时是xml形式,由于乱码服务器端xml也解析不了或出错.于是在post前先把它编码,到服务器端再解码,这样问题解决了,但是要是数据很大时估计会很影响速度. 虽然ASP中的request会自动解码经过url编码的字符串,但是Request.BinaryRead(Request.TotalBytes)取得post数据时却不会解码,所以要进行解码. 下面是我找到的一个ASP中server.urlen

  • ASP 时间函数及如何获取服务器时间的写法

    一.常用的ASP时间函数 1.now() 获取当前系统日期和时间,ASP输出格式:<%=now()%> 2.Year(now()) 获取年份, ASP输出格式:<%=Year(now())%> 3.Month(now()) 获取当前月份,ASP输出格式:<%=Month(now())%> 4.day(now()) 获取当天数,ASP输出格式:<%=day(now())%> 5.hour(now())获取小时数,ASP输出格式:<%=hour(now()

  • asp中实现清除html的函数

    这个函数是必需要的,很多黑客来捣乱,黑掉数据库,会注入大量的病毒js,在存储和展示文本数据的时候,使用此函数过滤一下,可避免不少麻烦 clearhtml代码 '清除HTML代码 function clearhtml(content) content=replacehtml("&#[^>]*;","",content) content=replacehtml("</?marquee[^>]*>","&quo

  • asp实现截取字符串函数

    如果标题过长,因为页面布局的限制,只能列表10个字符,这个函数会帮你实现的 复制代码 代码如下: '截取字符串 strvalue(标题,字数) function strvalue(str,lennum)     dim p_num     dim i     if strlen(str)<=lennum then         strvalue=str     else         p_num=0         x=0         do while not p_num > lenn

  • ASP转换格林威治时间函数DateDiff()应用

    我今天介绍的是在ASP中如果把时间(例如:2008-8-8 13:45:22)转换成秒的函数,和相反的把秒转换成时间的函数.当然时间转换的时候.必须有一个相对的固定时间,那就是格林威治时间.大家想想因为格林威治时间是以" 1970 年 1 月 1 日 00:00:00 "开始的,ASP提供了一个叫 DateDiff() 的函数,这个函数可以返回一个时间差的秒,那就是说我们放进去一个格林威治标准时间与现在的时间对比一下返回秒就OK.但我们还要注意时区,我们中国是GMT+08:00:00(

随机推荐