我使用jexl.eval函数计算一个值,如下所示-
jexl.eval("dataset[0].data['Entity Name'].toLowerCase().replace(/ /g, '_')",data);
DataSet[0].Data[‘实体名称’]始终为字符串且不为空, Jexl.eval中似乎有一些错误,它总是返回空字符串
我想确认一下是否支持toLowerCase()和Replace()?我的语法有没有什么问题?
jexl playground用于下一个查询
我使用jexl.eval函数计算一个值,如下所示-
jexl.eval("dataset[0].data['Entity Name'].toLowerCase().replace(/ /g, '_')",data);
DataSet[0].Data[‘实体名称’]始终为字符串且不为空, Jexl.eval中似乎有一些错误,它总是返回空字符串
我想确认一下是否支持toLowerCase()和Replace()?我的语法有没有什么问题?
jexl playground用于下一个查询
toLowerCase()
和replace
是受支持的字符串操作方法,但您使用了错误的语法,这可能是产生不想要的输出的原因之一.
在JEXL中,您可以使用|
(管道)运算符将100链接到一个值上.因此,为了正确使用它们,在JEXL表达式中使用它们之前,需要定义转换函数(针对toLowerCase
和replace
).类似于:
jexl.eval("dataset[0].data['Entity Name'] | lower | replace(' ', '_')", data);
// Tranformations
jexl.addTransform('lower', (val) => val.toLowerCase());
jexl.addTransform('replace', (val, search, replacement) => val.replace(new RegExp(search, 'g'), replacement));
100