|
主题: 一个关于正则表达式的问题
|
比特空间
职务:普通成员
等级:3
金币:10.0
发贴:853
注册:2002/6/16 11:56:52
|
#12005/2/3 15:41:23
<% Function CheckUserName(Strings) Str=CStr(Strings) boolTrue=RegEX("[^=]",Str) If boolTrue="False" then Session("errmsg")="123" Exit Function End if OnlyStr=Str End Function
Function RegEX(patrn,strng) Dim strRegEx,Match,Matches,retVal Set strRegEx = New RegExp strRegEx.Pattern = patrn strRegEx.IgnoreCase = False strRegEx.Global = True retVal = strRegEx.Test(strng) RegEX = retVal End Function
Session("errmsg")="" text="=1" CheckUserName(text) Response.Write Session("errmsg") %>
表达式设置成不能包含=但是text中包含=却没有显示error如果光=就可以了,似乎只要包含这个表达式所不允许的以外的值就一定不会显示error了,到底应该该怎么写,才能判断值整个text
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
|
#22005/2/3 20:24:01
Function CheckUserName(Strings) Str=CStr(Strings) boolTrue=RegEX("[^=]",Str) If boolTrue=true then Session("errmsg")="123" Exit Function End if OnlyStr=Str End Function
非常大鱼
|
比特空间
职务:普通成员
等级:3
金币:10.0
发贴:853
注册:2002/6/16 11:56:52
|
#32005/2/3 20:37:29
斑竹,我试了一下,如果text为1的话还是输出123,照理说是不应该输出任何东西的啊?我只定义了不能为=,1显然不是=啊
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
|
#42005/2/3 20:47:13
boolTrue=RegEX("^=",Str)
非常大鱼
|
比特空间
职务:普通成员
等级:3
金币:10.0
发贴:853
注册:2002/6/16 11:56:52
|
#52005/2/3 20:51:59
我搞懂了,是我的概念错误,还有一个问题^在""里应该是表示匹配输入字符串的开始位置的吧?只有在[]里才表示不接受该字符集合吧?我想知道加不加[]有什么区别么比如[^=]和^=有什么区别?
编辑历史:[此帖最近一次被 塔布里斯 编辑过(编辑时间:2005-02-03 21:01:07)]
|
蓝鲸
职务:版主
等级:5
金币:42.1
发贴:2614
注册:2001/12/20 15:57:57
|
#62005/2/3 22:01:57
给搞混了,"[^=]"是对的,^=表示第一个"="。 这z匹配的是非"="字符,"=1"匹配的是"1",而"1"也是匹配"1",当然全部匹配了,试试匹配"=="
非常大鱼
|
比特空间
职务:普通成员
等级:3
金币:10.0
发贴:853
注册:2002/6/16 11:56:52
|
#72005/2/4 10:02:34
蓝鲸在上个帖子中说 引用: 给搞混了,"[^=]"是对的,^=表示第一个"="。 这z匹配的是非"="字符,"=1"匹配的是"1",而"1"也是匹配"1",当然全部匹配了,试试匹配"=="
=1匹配的是"1"?我不明白意思,是指[^=]还是^=的情况=1匹配的是"1",为什么?
|
janlay
职务:管理员
等级:7
金币:28.0
发贴:7244
注册:2003/11/27 18:07:11
|
#82005/2/4 10:37:04
If RegEX("=",Str) Then 'if '=' found Session("errmsg")="123" Exit Function End if
InStr也可以完成这个任务: If InStr(str,"=")>0 Then
|