我正在使用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
}
任何帮助都将受到高度赞赏。
此致 阿鲁娜
答案 0 :(得分:2)
自从我做BIRT以来,它一直是永远,但我相信BIRT脚本只是Java的JavaScript解释器。我很确定你可以创建和使用Java对象。我认为this site会说一些,但你应该能够相当轻松地谷歌。
可能最好的方法是使用Java Regex API。它允许正则表达式处理,但您也可以手动解析它。