"includes" Javascript 函数在 WSO2 ESB 脚本中介中不起作用

"includes" Javascript Function Not Working in WSO2 ESB script mediator

"includes" Javascript 函数在 WSO2 ESB 脚本中介中不起作用。我已经使用 WSO2ESB 尝试过这个。

<script language="js"><![CDATA[        
                var dateFromPayload = mc.getProperty("dateFrom");
                var dateToPayload = mc.getProperty("dateTo")                

                function compareDates() {
                    var result = false;
                    print("hiiiii");
                    print(dateFromPayload.toString());
                    print(dateToPayload.toString());
                    var test= "dddd";
                    if (dateFromPayload.toString().includes("/") || dateToPayload.toString().includes("/")) {
                        result = false;
                    } else {

                        var dateFrom = new Date(dateFromPayload);
                        var dateTo = new Date(dateToPayload);
                        result = dateFrom.getTime() <= dateTo.getTime();
                         if (!result) {
                            result = false;
                    }
                }
                mc.setProperty("fromToDateValidated", result);
                }; compareDates()]]></script>

这可能是因为 ESB 中使用的底层 javascript 引擎尚不支持 includes() 功能。底层javascript引擎为mozilla rhino,版本为1.7R4。可能是此版本不支持上述功能 includes(),因为它包含在 ECMAScript 6 中。

作为替代方法,您可以使用如下所示的 indexOf() 函数。

if (dateFromPayload.toString().indexOf("/") != -1) {
    result = false;
}