Free Pascal:为 WideChar 检测 "is word char"

Free Pascal: detect "is word char" for WideChar

我用代码

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

它检测到好的AnsiChar;如何为 WideChar 检测 "if char letter or digit"?

我想没有简单的方法可以解决这个问题。你对字母的定义是什么? Ω(omega)是一个字母?它只是一个符号吗?您将不得不手动决定什么是字母,什么不是。您可以做一个大的 case 语句来确定 char 是否是字母数字...

function is_alpha_num(ch : widechar) : boolean;
begin
  case ch of
    #[=10=]30..#[=10=]39, // '0'..'9'                                                 
    #[=10=]41..#[=10=]5A, // 'A'..'Z'                                                 
    #[=10=]61..#[=10=]7A, // 'a'..'z'                                                 
    // need to define the rest here...                                          
    #$FF21..#$FF3A // 'A'..'Z'                                                
    : result := true;
   else result := false;
  end;
end;