通过 RegEx 检查 Genexus RPG 中的字符串
Checking strings in Genexus RPG via RegEx
我们有一个 "string" / Character(15) 变量,我们需要用它来验证字符 5 到 10 是数字。在编写原始代码和使用正则表达式时,或者在使用 Genexus 构建 Java 对象时,这非常简单,但我们正在使用 Genexus 并构建到 RPG IV。
我是这个平台的新手(不到一年),所以我不知道该怎么做。我听说我们使用的 Genexus 版本中的正则表达式功能不适用于 RPG。我建议拉一个子字符串并获取它的 val() 如果它不是所有数字,则会导致错误,从而停止程序。显然,在我们的版本 Genexus/RPGLE.
中没有办法优雅地处理错误
有没有人有处理这个的经验?有人可以为我们指出一个好的方向,使用 Genexus for RPG 来解决这个问题吗?
您可以编写一个程序来进行检查 "by hand"。
即:
&str = '1234567890ABCDEF' // this would be the input string
&isValid = 1 // this would be the output
if len(&str) > 9
for &index = 5 to 10
&char = substr(&str, &index, 1)
do case
case &char = '0'
case &char = '1'
case &char = '2'
case &char = '3'
case &char = '4'
case &char = '5'
case &char = '6'
case &char = '7'
case &char = '8'
case &char = '9'
otherwise
&isValid = 0
exit
endcase
endfor
else
&isValid = 0
endif
我们有一个 "string" / Character(15) 变量,我们需要用它来验证字符 5 到 10 是数字。在编写原始代码和使用正则表达式时,或者在使用 Genexus 构建 Java 对象时,这非常简单,但我们正在使用 Genexus 并构建到 RPG IV。
我是这个平台的新手(不到一年),所以我不知道该怎么做。我听说我们使用的 Genexus 版本中的正则表达式功能不适用于 RPG。我建议拉一个子字符串并获取它的 val() 如果它不是所有数字,则会导致错误,从而停止程序。显然,在我们的版本 Genexus/RPGLE.
中没有办法优雅地处理错误有没有人有处理这个的经验?有人可以为我们指出一个好的方向,使用 Genexus for RPG 来解决这个问题吗?
您可以编写一个程序来进行检查 "by hand"。
即:
&str = '1234567890ABCDEF' // this would be the input string
&isValid = 1 // this would be the output
if len(&str) > 9
for &index = 5 to 10
&char = substr(&str, &index, 1)
do case
case &char = '0'
case &char = '1'
case &char = '2'
case &char = '3'
case &char = '4'
case &char = '5'
case &char = '6'
case &char = '7'
case &char = '8'
case &char = '9'
otherwise
&isValid = 0
exit
endcase
endfor
else
&isValid = 0
endif