Free Pascal:检测WideChar的“is word char”

时间:2015-02-25 05:58:54

标签: lazarus freepascal

我使用代码

Result:=
((ch>='0') and (ch<='9')) or
((ch>='a') and (ch<='z')) or
((ch>='A') and (ch<='Z')) or
(ch='_');

它检测到好的AnsiChar;如何检测&#34;如果字母或数字&#34;对于WideChar?

1 个答案:

答案 0 :(得分:0)

我想没有简单的方法可以解决这个问题。你对一封信的定义是什么? Ω(欧米茄)是一封信?它只是一个象征吗?你必须手动决定什么是字母,什么不是。您可以创建一个大的case语句来确定char是否是字母数字......

function is_alpha_num(ch : widechar) : boolean;
begin
  case ch of
    #$0030..#$0039, // '0'..'9'                                                 
    #$0041..#$005A, // 'A'..'Z'                                                 
    #$0061..#$007A, // 'a'..'z'                                                 
    // need to define the rest here...                                          
    #$FF21..#$FF3A // 'A'..'Z'                                                
    : result := true;
   else result := false;
  end;
end;