标题:Split这个函数怎么用?
只看楼主
中国男孩
Rank: 1
等 级:新手上路
帖 子:291
专家分:7
注 册:2006-3-19
结帖率:0
 问题点数:0 回复次数:15 
Split这个函数怎么用?

各位大侠,有问题想请教一下,:
Split这个函数怎么用啊?
我想要用这个函数来控制文本框里不能填写在我所控制之内的内容:
比如:有一页是来提交表单的,另外一页是来处理这个表单的,我想在处理表单这一页来用Split函数来控制表单不能输入(,:][‘><?/-=+_)等之内的字符!否则就弹出一个对话框,比如说:不能输入这些字符!



搜索更多相关主题的帖子: Split 函数 
2007-10-14 01:42
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
得分:0 

配合Instr之类的函数完成


[CODE]Dim GetText
GetText=Trim(Request("NewQuote"))

Const BannedTexts=", : ] [ ' > < ? / - = +"
Dim BannedText()
BannedText=Split(BannedTexts," ")

Dim i
For i=0 To UBound(BannedText)
If Instr(GetText,BannedText(i))>0 Then
Response.Write "<i>请不要在文本框里输入<b>" & Server.HtmlEncode(BannedText(i)) & "</b>字符,此留言未写入数据库</i>"
'Call CloseConn() ' 关闭数据库连接
Response.End '结束处理和输出
End If
Next 'i[/CODE]

不过既然都是一个字符的话 我更喜欢下面这种方法,不用Split

[CODE]Dim GetText
GetText=Trim(Request("NewQuote"))

Const BannedChars=",:]['><?/-=+"

Dim i
For i=1 To Len(BannedChars)
If Instr(GetText,Mid(BannedChars,i,1))>0 Then
Response.Write "<i>请不要在文本框里输入<b>" & Server.HtmlEncode(Mid(BannedChars,i,1)) & "</b>字符,此留言未写入数据库</i>"
'Call CloseConn() ' 关闭数据库连接
Response.End '结束处理和输出
End If
Next 'i[/CODE]

2007-10-14 08:47
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
得分:0 
asp的split函数不是太好用,很多情况没考虑好,所以最好不要用,非要用到的话还是自己写一个函数比较安全

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-14 19:48
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
得分:0 
以下是引用永夜的极光在2007-10-14 19:48:57的发言:
asp的split函数不是太好用,很多情况没考虑好,所以最好不要用,非要用到的话还是自己写一个函数比较安全

挺好用的啊,不知道你想用split干什么。如果你想要吃汉堡的话,split的确没用,要用RMB。

2007-10-14 20:07
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
得分:0 

汉堡不好吃,来俩鸡翅好了,谈RMB太伤感情,就免了吧

我以前试过这个split函数,对于完全合理的输入,分解结果那是肯定对的(其实这是废话

但是对一些特殊情况的处理考虑不全面(具体是什么特殊情况我忘记了,以后查查)

总之如果在用split前可以保证字符串完全合理,那可以用,但是如果字符串来自于用户输入,那随时可能出问题。


从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-14 20:25
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
得分:0 
以下是引用永夜的极光在2007-10-14 20:25:32的发言:

汉堡不好吃,来俩鸡翅好了,谈RMB太伤感情,就免了吧

我以前试过这个split函数,对于完全合理的输入,分解结果那是肯定对的(其实这是废话

但是对一些特殊情况的处理考虑不全面(具体是什么特殊情况我忘记了,以后查查)

总之如果在用split前可以保证字符串完全合理,那可以用,但是如果字符串来自于用户输入,那随时可能出问题。

我还没构造出不合理的情况。但是split的确有局限性,比如如果我要空格也能分隔,逗号也能分隔,可以混合使用,split就没法用了。
当然有一种思路是先把逗号replace成空格,然后执行split(这主意真不错哦)

2007-10-14 20:31
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
得分:0 


<%
dim s
s=\" a b c d e \"
response.write(ubound(split(s,\" \")))
%>

split对于多空格的处理就比较有问题


从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-14 21:44
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
得分:0 
以下是引用永夜的极光在2007-10-14 21:44:27的发言:


<%
dim s
s=\" a b c d e \"
response.write(ubound(split(s,\" \")))
%>

split对于多空格的处理就比较有问题


<%
dim s
s=\" a b c d e \"
While Instr(s,\" \")
s=replace(s,\" \",\" \")
Wend

response.write(ubound(split(s,\" \")))
%>

2007-10-14 21:46
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
得分:0 
能够处理我知道,但是我觉得这个本来应该在split里面自己处理的

话说回来,在我说这个之前,你用split的时候,有没有这么处理一遍呢?

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-10-14 22:04
中国男孩
Rank: 1
等 级:新手上路
帖 子:291
专家分:7
注 册:2006-3-19
得分:0 
谢谢各位大侠的讲解,我有一名ASP初学者,以后有什么问题还得请教各位大侠们

我很想把计算机学好!!
2007-10-15 13:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-177423-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021695 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved