检查字符字段是否仅包含数字

YuT*_*ian 5 abap

我从excel文件中读取数据。内表的列都是char128,有2列只包含带小数点的数字。所以我需要检查字段只包含数字或带小数点的数字。

功能模块NUMERIC_CHECK,只能检查数字,如果数字带小数点就没用了。

knu*_*nut 6

您可以使用CO(仅包含):

IF value CO '1234567890.'.
  "OK
ELSE.
  "Error"
ENDIF.
Run Code Online (Sandbox Code Playgroud)

也许您的 -IF _ CO语句中还需要一个空格。

此检查不检测多个小数点(例如123.45.67.89)。

较新版本的 ABAP 支持正则表达式。

如果您的字符串中还有空格,您可以将它们添加到 CO 值中: IF value CO '1234567890 .'.

  • 这种技术实际上是无用的,因为它也会让诸如“......”之类的胡说八道。经过。 (2认同)

iAm*_*eff 5

您可以尝试使用 REGEX。报告 DEMO_REGEX_TOY 允许您输入字符串并针对它们测试正则表达式。

一般而言,对 REGEX 更有经验的人可能会使其更加通用,但这是我想出的:

-?[0-9]+(\.[0-9]*)?
Run Code Online (Sandbox Code Playgroud)

-?可选匹配“-”字符(允许否定或非否定

[0-9]+匹配数字(+ 使其匹配 1 个或多个)

\.? 可选匹配“.” 字符(\ 是必需的,因为 '.' 是一个运算符)

([0-9]+)?可选匹配小数点后的任何数字