使用Birt脚本从字符串中提取数字

Extract numbers from a string using Birt Scripting

本文关键字:提取 数字 字符串 Birt 脚本 使用      更新时间:2023-09-26

我正在使用BIRT开发一个报告应用程序。数据库字段包含具有数字数据的其他字符。我需要过滤掉所有其他不需要的字符,只从数据库字段中提取数字数据。我没有在查询中这样做(这对我的要求来说是不可行的)。我是按照BIRT的脚本做的。但是下面的BIRT脚本的javascript regex部分不起作用。(但javascript正则表达式是正确的。我在在线javascript验证网站上测试了它)但是对于BIRT脚本,regex部分不起作用。如何正确实现这个BIRT脚本?

if(BirtComp.like(row["fldDescription"],"%Plate Count%",true)){
var data = row["bbb"];
var num = 0;
try{
    num= parseFloat(data.match(/'d+/)[0]);//this is the regex part that is not working
    }
catch(err){
    num = row["bbb"];
}

if(num<=100){
    if(BirtComp.match(row["fldResult3"],"/^.*<.*/") ){
    1.4
    }else if(num==100){
    num
    }else{
    1.4
    }
}else{
num
}

如有任何帮助,我们将不胜感激。

谨致问候,阿鲁纳

我做BIRT已经很久了,但我相信BIRT脚本只是Java的JavaScript解释器。我非常确信您可以创建和使用Java对象。我认为这个网站可以说明一些问题,但你应该能够很容易地用谷歌搜索它。

最好的方法可能是使用Java Regex API。它允许正则表达式处理,但您也可以手动解析它。