您现在的位置:计算机技术学习网 > 技术中心 > WEB编程 > ASP >

ASP中实现支持逻辑搜索/单词搜索/词组搜索+支持OR/AND关键字的VBS CLASS

来源:网络整理 责任编辑:栏目编辑 发表时间:2013-07-02 01:29 点击:
     CLASS功能.替换传入的字符串成为SQL语句Where关键字后面的表达式:
  
  词语搜索 [例如: 小明]
  
  词组搜索
  词组里面每一个词都将被检索
  例如: 小强1 小名1 小强强 小小强
  
  逻辑搜索
  支持 And 和 Or 运算符.
  例如: 小明 And 小强 And 小小强
  
  复合条件:
  例如:(小小明 Or 小明) And (小强 Or 小小强)
  例如:(小小明 Or 小名) And 小小强
  例如: ROOT1 And (广东人 Or 北京人)
  
  
  -----------------------------------------------------------
  Class CreateQueryString
  
  Public objReg
  Public intStart
  Public strField
  Private objNode2
  Private strText
  
  Public Property Let QueryString( strValue )
  strText = Lcase( strValue )
  End Property
  
  Private Sub Class_Initialize()
  Set objReg = new RegExp
  strField = "(标题+文章)"
  End Sub
  
  Private Sub Class_Terminate()
  Set objReg = Nothing
  End Sub
  
  Public Default Function GetText()
  Dim blnRes
  Dim strSky
  With objReg
  .IgnoreCase = true
  .Global = True
  .Pattern = "\s"
  blnRes = .Test( strText )
  End With
  If (Not blnRes) Then
  intStart = 2
  GetText = strField & " like '%" & strText & "%'"
  Else
  objReg.Pattern = "\sand|\sor"
  blnRes = objReg.Test( strText )
  If blnRes Then
  strSky = check()
  If strSky = False Then
  GetText = wahaha()
  Else
  GetText = strSky
  End if
  Else
  GetText = wahaha()
  End if
  End If
  End Function
  
  Private Function wahaha()
  Dim strTer
  Dim strLikes
  Dim strOrs
  Dim strI
  Dim objRe
  strTer = ""
  strLikes = " or (" & strField & " like '%"
  strOrs = "%')"
  objReg.Pattern = "(\S*\S)"
  Set objRe = objReg.Execute(strText)
  For Each strI In objRe
  strTer = strTer & strLikes & strI & strOrs
  Next
  wahaha = Mid( strTer , 4 )
  intStart = 3
  End Function
  
  Private Function CheckYes( strMode , intCount)
  Dim objNode1
  objReg.Pattern = strMode
  Set objNode1 = objReg.Execute( strText )
  If objNode1.Count < 1 Then
  CheckYes = True
  Else
  Set objNode2 = objNode1( 0 )
  If objNode2.subMatches.Count < intCount Then
  CheckYes = True
  End If
  End If
  End Function
  
  Private Function ORAND()
  Dim strSSS
  Dim strCCC
  Dim strAAA
  Dim a143
  Dim i
  Dim objN
  Dim blnTru
  Dim blnBBB
  strSSS = "(" & strField & " like '%"
  strCCC = "%')"
  strAAA = ""
  n1 = 0
  blnTru = True
  blnBBB = True
  
  objReg.Pattern = "(\S*\S)"
  Set objN = objReg.Execute( strText )
  a143 = objN.Count
    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • WAP常见问题问答大全(四)
    • ASP开发必备:WEB打印代码大全
    • ASP调用系统ping命令
    • asp缓存技术
    • ASP教程:第三篇 ASP基础
    • 用ASP+XML打造留言本(4)
    • 关于ASP Recordset 分页出现负数解决方法及建议
    • 用asp怎样编写文档搜索页面(5)
    • ASP处理多关键词查询实例代码
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1