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;
我用代码
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;