如何判断一个字符串是纯中文?
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
这是我目前用的正则
却不能精确的判断 例如全角符号的排除
望高手整个更加完美的办法 谢谢楼上各位, 偶自己修改了下,这是我想要的
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
除了\x 还有一种\u的 你可以找找... [^\x00-\xff] 是中文 字、符,没分开 字 符,貌似没办法,因为不支持 \u
你的代码可以精简些Func hazjc($txt) ;纯汉字返回1 否则返回0
If StringRegExp($txt, '^[^\x00-\xff]+$') Then Return 1
EndFunc ;==>hazjc 正则看上去简单但又难记下还有就是难配对哎 羡慕 新手!学习学习!! 新手,学习学习! 学习了,正好有用 !!!! 正则是好东西
在平时经常能轻易解决很多相对复杂的字符串处理
想技高一筹就得去耐心学学 还有个方法。
$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 正则是个好东西,一直没时间好好的研究一下 api里有判断字符串是否只包含字母和数字的,不知道中文的怎么搞 正则好用不好记啊 学习了,正好有用 !!!! 不错啊,可以的
页:
[1]