0ascii255
站在用戶的角度思考問題,與客戶深入溝通,找到梅州網(wǎng)站設(shè)計(jì)與梅州網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋梅州地區(qū)。
我來補(bǔ)充一下代碼吧,在form中加入一個(gè)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)行修改吧,這是對(duì)輸入框約束輸入的比較常用的方法之一,你可以去搜索一下英文字符ASCII碼表.
你可以用mid截取單個(gè)字符并用ASCII碼判斷:
n=asc(mid(str1,i,1))
if n0 and n255 then
'英文字母
else
'中文
end if
整個(gè)字符串你可以循環(huán)判斷。
這是一個(gè)比較粗糙的范圍,更加精準(zhǔn)的判斷:33-126為可打印的(即可顯示的)英文字符,97-122為英文字母(小寫),你可以根據(jù)字符串的實(shí)際內(nèi)容來采用判斷依據(jù);負(fù)數(shù)是漢字(其實(shí)是最高位為1,VB識(shí)別為負(fù)數(shù),轉(zhuǎn)換成16進(jìn)制就可以看到正確的編碼了)
str = "hello,everybody. " 返回false,位置0。(不含漢字和漢語標(biāo)點(diǎn)符號(hào))
str = "hello,ererybody。 " 返回false,位置16。(最后一個(gè)句號(hào)是漢語標(biāo)點(diǎn)符號(hào))
先謝過大家了!