2012-03-20 37 views
0

我正在使用BIRT開發報告應用程序。 數據庫字段包含具有數字數據的其他字符。 我需要過濾掉所有其他不需要的字符,並只從數據庫字段中提取數字數據。在查詢時我沒有這樣做(這對我的要求是不可行的)。我是在BIRT腳本中完成的。但是下面的BIRT腳本的javascript regex部分不起作用。 (但是javascript的正則表達式是正確的,我在網上javascript驗證網站測試了它) 但是對於BIRT腳本,正則表達式部分不起作用。我如何正確實現這個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 
} 

任何幫助將不勝感激。

問候, 阿魯娜

回答

2

它一直以來永遠我做BIRT,但我相信BIRT腳本僅僅是一個JavaScript解釋器的Java。我很肯定你可以創建和使用Java對象。我認爲this site有一些說明,但你應該能夠很容易地谷歌。

可能最好的方法是使用Java Regex API。它允許正則表達式處理,但你也可以直接解析它。