|  | 主题:  一个关于正则表达式的问题 | 
            
                        
                
                    |  比特空间
 职务:普通成员
 等级: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 '=' foundSession("errmsg")="123"
 Exit Function
 End if
 
 InStr也可以完成这个任务:
 If InStr(str,"=")>0 Then
 |