经典 ASP - 尝试在另一个字符串变量中搜索字符串。 (替代 InStr 函数)
Classic ASP - Trying to search a string in another string variable. (Alternative to InStr function)
在下面的代码中currentregion = 'BC'
和Regions = 'ABC'
.
我试图在 Regions
中找到 currentregion
,通常它应该命中 else
,因为 if
条件是 false
。
但它 returns true
因为 InStr
搜索字符串的一部分而不是字符串 vs 字符串。所以 BC 作为 ABC 的一部分,它进入了 if 循环。
Classic ASP 中是否有一个函数,我可以将字符串与字符串进行比较,但不能像 InStr 函数那样比较字符串的一部分。
RegionSQL = "SELECT * FROM Regions Where Auth <= " & Session("U_Auth") & ";"
Set rsRegion=Server.CreateObject("recordset")
rsRegion.Open RegionSQL,TheDB
If NOT rsRegion.EOF And NOT rsRegion.BOF Then
rsRegion.MoveFirst
While Not rsRegion.Eof
'Grab Current Region
currentregion = rsRegion("RegionCodeShort")
If InStr(Regions,currentregion) > 0 Then
checked = "checked"
Else
checked = ""
End If
Regular expressions的经典任务:
Private Sub CommandButton1_Click()
MsgBox (find("ABC", "(ABC)")) ' exist
MsgBox (find("BC", "(ABC)")) ' not exist
End Sub
Function find(aString As String, ByVal pattern As String) As Boolean
Dim regEx As Object
Set regEx = CreateObject("vbscript.regexp")
Dim newArray() As String
Dim cnt As Integer
regEx.pattern = pattern
regEx.IgnoreCase = True
regEx.Global = True
Set matches = regEx.Execute(aString)
Dim x As Integer
x = matches.Count
If x = 0 Then
find = False
Else
find = True
End If
End Function
尝试使用
If strcomp(Regions,currentregion,vbTextCompare) = 0 Then
而不是
If InStr(Regions,currentregion) > 0 Then
Split先将字符串放入数组,然后循环比较每个元素
在下面的代码中currentregion = 'BC'
和Regions = 'ABC'
.
我试图在 Regions
中找到 currentregion
,通常它应该命中 else
,因为 if
条件是 false
。
但它 returns true
因为 InStr
搜索字符串的一部分而不是字符串 vs 字符串。所以 BC 作为 ABC 的一部分,它进入了 if 循环。
Classic ASP 中是否有一个函数,我可以将字符串与字符串进行比较,但不能像 InStr 函数那样比较字符串的一部分。
RegionSQL = "SELECT * FROM Regions Where Auth <= " & Session("U_Auth") & ";"
Set rsRegion=Server.CreateObject("recordset")
rsRegion.Open RegionSQL,TheDB
If NOT rsRegion.EOF And NOT rsRegion.BOF Then
rsRegion.MoveFirst
While Not rsRegion.Eof
'Grab Current Region
currentregion = rsRegion("RegionCodeShort")
If InStr(Regions,currentregion) > 0 Then
checked = "checked"
Else
checked = ""
End If
Regular expressions的经典任务:
Private Sub CommandButton1_Click()
MsgBox (find("ABC", "(ABC)")) ' exist
MsgBox (find("BC", "(ABC)")) ' not exist
End Sub
Function find(aString As String, ByVal pattern As String) As Boolean
Dim regEx As Object
Set regEx = CreateObject("vbscript.regexp")
Dim newArray() As String
Dim cnt As Integer
regEx.pattern = pattern
regEx.IgnoreCase = True
regEx.Global = True
Set matches = regEx.Execute(aString)
Dim x As Integer
x = matches.Count
If x = 0 Then
find = False
Else
find = True
End If
End Function
尝试使用
If strcomp(Regions,currentregion,vbTextCompare) = 0 Then
而不是
If InStr(Regions,currentregion) > 0 Then
Split先将字符串放入数组,然后循环比较每个元素