使用Birt Scripting从字符串中提取数字

时间:2012-03-20 08:49:34

标签: java javascript regex scripting birt

我正在使用BIRT开发报告应用程序。 数据库字段包含具有数字数据的其他字符。 我需要过滤掉所有其他不需要的字符,并仅从数据库字段中提取数字数据。我没有在查询中这样做(根据我的要求,这是不可行的)。我是在BIRT脚本上做到的。但是以下BIRT脚本的javascript正则表达式部分无效。 (但是javascript正则表达式是正确的。我在在线javascript验证网站上测试过它) 但是使用BIRT脚本,正则表达式部分无效。如何正确实现此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
}

任何帮助都将受到高度赞赏。

此致 阿鲁娜

1 个答案:

答案 0 :(得分:2)

自从我做BIRT以来,它一直是永远,但我相信BIRT脚本只是Java的JavaScript解释器。我很确定你可以创建和使用Java对象。我认为this site会说一些,但你应该能够相当轻松地谷歌。

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