在TMS WEB Core中使用Delphi的CharInSet函数报错如何解决?
在TMS WEB Core中替代CharInSet的解决方案
你遇到的错误是因为TMS WEB Core的Pascal转译器尚未实现CharInSet配合['0'..'9']这类字符范围集合的语法,因此无法正常解析执行。可以用以下几种替代方案实现相同的字符判断逻辑:
方法一:直接字符范围比较
这是最简单直接的方式,通过判断字符是否在'0'到'9'的ASCII范围内实现:
procedure TForm1.WebButton1Click(Sender: TObject); var c: Char; begin c := 'A'; if (c >= '0') and (c <= '9') then ShowMessage('该字符是数字') else ShowMessage('该字符不是数字'); end;
方法二:使用Pos函数检查字符存在性
通过Pos函数判断目标字符是否包含在数字字符串中:
procedure TForm1.WebButton1Click(Sender: TObject); var c: Char; begin c := 'A'; if Pos(c, '0123456789') > 0 then ShowMessage('该字符是数字') else ShowMessage('该字符不是数字'); end;
方法三:调用JavaScript原生方法
借助TMS WEB Core对JavaScript的直接调用能力,使用JS的数字解析逻辑判断:
procedure TForm1.WebButton1Click(Sender: TObject); var c: Char; begin c := 'A'; if not IsNaN(JS.Window.parseInt(c)) then ShowMessage('该字符是数字') else ShowMessage('该字符不是数字'); end;
以上三种方法均能在TMS WEB Core环境中正常运行,替代CharInSet的功能。
内容的提问来源于stack exchange,提问作者Shaun Roselt
相关产品推荐
相关产品推荐

