str = "hello,everybody. " 返回false,位置0。(不含漢字和漢語(yǔ)標(biāo)點(diǎn)符號(hào))
創(chuàng)新互聯(lián)自2013年起,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元寧河做網(wǎng)站,已為上家服務(wù),為寧河各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108
str = "hello,ererybody。 " 返回false,位置16。(最后一個(gè)句號(hào)是漢語(yǔ)標(biāo)點(diǎn)符號(hào))
先謝過大家了!
0ascii255
我來(lái)補(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碼來(lái)判斷的,你根據(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)容來(lái)采用判斷依據(jù);負(fù)數(shù)是漢字(其實(shí)是最高位為1,VB識(shí)別為負(fù)數(shù),轉(zhuǎn)換成16進(jìn)制就可以看到正確的編碼了)