验证 mule 3 dataweave 1.0 中的整数值

validate integer value in mule 3 dataweave 1.0

我想将字段值验证为整数并将测试值设为整数。在下面的代码中,如果字段值为字符串,那么我会收到错误消息。在这里我需要配置如果值不是整数然后使测试值为 "" .

        %dw 1.0
        %output application/json
        %var field="2312321a"
        %function isEmpty(value) (value!=null and value!="")
        ---
        {
            test: field as :number as :string {format: "###"} as :number when isEmpty(field) otherwise ""
        }

预期:例如:123.44--> 123, 1234-> 1234, 123ab-> "", "" -> ""

您可以使用正则表达式来验证字符串是否仅包含数值。这是一个可用于此目的的正则表达式。它也会处理负值。

/[+-]?([0-9]*[.]?[0-9]+)/

并使用 matches 检查字符串是否为数字。

%dw 1.0
%output application/json
%var field="2312321a"
%function isNumeric(string) string matches /[+-]?([0-9]*[.]?[0-9]+)/
---
{
    test: field as :number as :string{format: "###"} as :number when isNumeric(field) otherwise ""
}