有一個字符串函數(shù):Instr(n,S1,S2)
站在用戶的角度思考問題,與客戶深入溝通,找到南木林網(wǎng)站設(shè)計與南木林網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋南木林地區(qū)。
該函數(shù)的功能:從字符串S1的左起第N位開始,向右逐位進(jìn)行搜索匹配字符串S2,如果找到匹配,就返回一個整數(shù)指明匹配的位置,否則就返回0。如果缺省n,就是默認(rèn)從字符串S1的左起第1位開始,進(jìn)行搜索匹配字符串S2。
例如1:Instr(1,"abcde","a"),返回1
例如2:Instr(3,"abcde","a"),返回0
例如3:Instr(1,"abcde","c"),返回3
例如4:Instr(1,"abcde","cde"),返回3
例如5:Instr(4,"ab12cd12e12","12"),返回7,這里從字符串"ab12cd12e12"左起第4位開始向右搜索匹配字符串"12",找到的是中間一個“12”,這個“12”是位于字符串"ab12cd12e12"左起的第7個字符。
而:Instr(1,"ab12cd12e12","12"),返回3
Instr("ab12cd12e12","12"),返回3
特殊字符指的是什么?是漢字還是不可見字符還是不常用字符,比如通常使用字符ascii值32–126 是鍵盤上找到的字符。
比如將字符串用Split替換掉常用的字符,如果剩下的字符串長度不為0就含有其他字符,判斷a-zA-Z0-9也是用這個辦法,實際上用正則表達(dá)式也很簡單,用For的循環(huán)判斷每個字符值也可以
用 Like
% = 任意數(shù)量的字符
?= 單個字符
類似簡易的正規(guī)則比對。
具體可參照MSDN
例:(以下代碼可以直接放到程序里執(zhí)行)
dim str as string
str = "abc123"
if str like "a%" then msgbox "yes"
if str like "%a%2%" then msgbox "yes"
if str like "%3" then msgbox "yes"
if str like "%3?" = false then msgbox "no"
如果是要判斷引用類型可以用TypeOf來判斷
Dim s = "666"
If TypeOf (s) Is String Then
Debug.Print("string")
Else
Debug.Print("not string")
End If
如果不知道是否是引用類型,可以這樣判斷:
Dim s = 666
If VarType(s) = VariantType.String Then
Debug.Print("string")
Else
Debug.Print("not string")
End If
或者:
Dim s = 666
If s.GetType = "".GetType Then
Debug.Print("string")
Else
Debug.Print("not string")
End If
很簡單,用字符串查找函數(shù)就可以實現(xiàn)了。
當(dāng)在StrB查找到StrA字符串時,返回肯定是非0的數(shù),值就是True,找不到為0或者-1,值就是Flase
比如:
Dim StrA As String = "Time is Limited"
Dim StrB As String = "Time"
Dim Stu As Boolean= InStr(StrA, StrB)
這運行段代碼,Stu值就是True了。
我覺得這樣最簡單有效。