my788521 发表于 2010-3-6 13:03:56

如何判断一个字符串是纯中文?

Func hazjc($txt) ;纯汉字返回1 否则返回0
        $ch = StringRegExp($txt, '[^\x00-\xff]+', 3)
        If @Error = 0 Then
                If $ch = $txt Then
                        Return 1
                Else
                        Return 0
                EndIf
        Else
                Return 0
        endif
EndFunc   ;==>hazjc

这是我目前用的正则
却不能精确的判断 例如全角符号的排除

望高手整个更加完美的办法

nhxiaobo 发表于 2010-12-19 19:43:11

谢谢楼上各位, 偶自己修改了下,这是我想要的
Func _shifou_hazi($txt_tmp) ;字符串中只要其中有一个汉字返回1 否则返回0

        $arry_tmp = StringToASCIIArray($txt_tmp)
        For $i = 0 To StringLen($txt_tmp) - 1 Step 1
                If $arry_tmp[$i] > 255 Then
                        ;MsgBox(0, $arry_tmp[$i], ChrW($arry_tmp[$i]) & " 是中文字符!")
                        Return 1
                EndIf
        Next
        Return 0
       
EndFunc   ;==>_shifou_hazi

rolaka 发表于 2010-3-6 13:16:20

除了\x 还有一种\u的 你可以找找...

afan 发表于 2010-3-6 13:23:15

[^\x00-\xff] 是中文 字、符,没分开 字 符,貌似没办法,因为不支持 \u
你的代码可以精简些Func hazjc($txt) ;纯汉字返回1 否则返回0
      If StringRegExp($txt, '^[^\x00-\xff]+$') Then Return 1
EndFunc   ;==>hazjc

zmj2008 发表于 2010-3-16 12:25:50

正则看上去简单但又难记下还有就是难配对哎 羡慕

masterpcc 发表于 2010-3-16 12:47:04

新手!学习学习!!

xiaopuff 发表于 2010-3-16 16:11:16

新手,学习学习!

kxing 发表于 2010-4-20 11:47:59

学习了,正好有用 !!!!

lynfr8 发表于 2010-4-20 17:21:28

正则是好东西
在平时经常能轻易解决很多相对复杂的字符串处理
想技高一筹就得去耐心学学

lanfengc 发表于 2010-4-20 17:33:00

还有个方法。
$str="欢迎使用 ACN 中文论坛出品的 AUTOIT V3 汉化版!"
$arry=StringToASCIIArray($str)
For$i=0 To StringLen($str)-1 Step 1
        If $arry[$i] >255 Then
                MsgBox(0,$arry[$i],ChrW($arry[$i])&" 是中文字符!")
        EndIf
Next

clshuai 发表于 2010-4-20 20:12:53

正则是个好东西,一直没时间好好的研究一下

netegg 发表于 2010-4-21 03:51:54

api里有判断字符串是否只包含字母和数字的,不知道中文的怎么搞

rence 发表于 2010-4-21 17:23:28

正则好用不好记啊

askask150 发表于 2010-6-4 22:36:31

学习了,正好有用 !!!!

huangke 发表于 2011-10-13 17:21:48

不错啊,可以的
页: [1]
查看完整版本: 如何判断一个字符串是纯中文?