可以根據(jù)字符的ASCII編碼來進(jìn)行判斷,ASCII的編碼值為:0-127,可以把0-127以外的編碼的字符作為漢字。
創(chuàng)新互聯(lián)是一家專業(yè)提供澤普企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計、小程序制作等業(yè)務(wù)。10年已為澤普眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
Dim?a?As?String
Dim?S?As?Integer????'保存漢字的開始位置
Dim?E?As?Integer????'保存漢字的結(jié)束位置
Dim?i?As?Integer
Dim?b?As?String
S?=?0
E?=?0
a?=?"4651讓各位serg6546.,serg6546"
For?i?=?1?To?Len(a)
If?Asc(Mid(a,?i,?1))?=?0?And?Asc(Mid(a,?i,?1))?=?127?Then
'這個是非漢字字符
If?S?=?0?Then
'還沒有找到漢字的開始位置
'不做任何處理
Else
'已經(jīng)找到漢字的開始位置
'那么現(xiàn)在這個是漢字的結(jié)束位置
'保存漢字的結(jié)束位置,然后結(jié)束循環(huán)
E?=?i?-?1
Exit?For
End?If
Else
'這個是漢字字符
'如果還沒有保存漢字開始位置,
'那么這個就是漢字的開始位置,保存下來
If?S?=?0?Then
S?=?i
End?If
End?If
Next?i
'現(xiàn)在知道了S中是漢字的開始位置,
'E中是漢字的結(jié)束位置
'現(xiàn)在把原來的字符串分成三段,然后加上雙引號
b?=?Left(a,?S?-?1)??""""??Mid(a,?S,?E?-?S?+?1)??""""??Mid(a,?E?+?1)
'看看結(jié)果
MsgBox?b
你可以用mid截取單個字符并用ASCII碼判斷:
n=asc(mid(str1,i,1))
if n0 and n255 then
'英文字母
else
'中文
end if
整個字符串你可以循環(huán)判斷。
這是一個比較粗糙的范圍,更加精準(zhǔn)的判斷:33-126為可打印的(即可顯示的)英文字符,97-122為英文字母(小寫),你可以根據(jù)字符串的實際內(nèi)容來采用判斷依據(jù);負(fù)數(shù)是漢字(其實是最高位為1,VB識別為負(fù)數(shù),轉(zhuǎn)換成16進(jìn)制就可以看到正確的編碼了)
用循環(huán)加MID函數(shù),取出每一個字符,看它的ASCII碼,0的是漢字,0的是非漢字。
Function isLetter(letter As String) As String
If Asc(letter) 0 Then
’Ascii碼小于0的為漢字區(qū),但其中有的是全角字符而不完全是漢字,需要進(jìn)一步區(qū)分
gbascii = AscB(StrConv(letter, vbFromUnicode))
'MsgBox gbascii
'區(qū)位碼在16區(qū)之后的為漢字[16區(qū)以前的 是全角字符]
If gbascii - 160 15 Then
isLetter = "是漢字"
Else
isLetter = "是全角符號"
End If
Else
isLetter = "是半角英文或數(shù)字"
End If
End Function
.................張志晨:我想這個比較簡單,符合你的意愿。
str = "hello,everybody. " 返回false,位置0。(不含漢字和漢語標(biāo)點符號)
str = "hello,ererybody。 " 返回false,位置16。(最后一個句號是漢語標(biāo)點符號)
先謝過大家了!
0ascii255
我來補(bǔ)充一下代碼吧,在form中加入一個Text1
Private Sub Text1_Change()
If Text1.Text = "" Then Exit Sub '如果是空字符串,就退出此過程
Dim a
a = Asc(Mid(Text1.Text, Len(Text1.Text), 1))
If a 255 Or a 0 Then MsgBox "剛才輸入的是漢字" Else MsgBox "剛輸入的是字符"
End Sub
這是靠ASCII碼來判斷的,你根據(jù)你的程序需要進(jìn)行修改吧,這是對輸入框約束輸入的比較常用的方法之一,你可以去搜索一下英文字符ASCII碼表.
當(dāng)前文章:vb.net怎么判斷漢字,vb判斷字符串是否包含漢字
網(wǎng)頁路徑:http://m.rwnh.cn/article4/phgjoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗、手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、小程序開發(fā)、網(wǎng)站建設(shè)、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)