2010-04-19 17 views
0

假設我讓用戶使用Javascript,用戶可以編寫條件進行測試,並返回true或false來寫的條件。例如:解析和更換的JavaScript標識符與犀牛在Java中

INS>5 || ASTO.valueBetween(10,210) 

我想查找哪些變量用於用戶編寫的腳本中。我試圖找到一種方法來獲取Java中的標識符名稱。犀牛圖書館沒有太多幫助。但是我發現通過處理異常我可以得到所有的標識符。所以這個問題解決了。

所以一切都很好,但有一個小問題。我如何用數字標識符替換這些標識符?例如。 INS應該是_234ASTO應該是_331

INSASTO等我的數據庫實體。我想替換它們,因爲名稱可能會更改。我可以使用替換來做到這一點,但這並不容易,因爲:

  1. 它應該是可逆的。例如。 ASTO_234_234ASTO
  2. MPLAH更換_23也可以代替_234。這可以通過某種方式用regexp修復。
  3. 如果_23在註釋部分怎麼辦?很少發生,但可能/* _23 fdsafd ktl */。它也應該被替換。
  4. 如果它是一個函數的名字呢?例如。 _32() {}。也很少見,但不應該被取代。
  5. 如果它是什麼封閉在""''

我相信有很多更多的病例。有任何想法嗎?

+1

我很難理解你的問題。真的不太清楚你在做什麼。 – spender 2010-04-19 01:09:54

+0

好吧,我會再試一次:) – GorillaApe 2010-04-19 01:16:45

+0

還是太窮了。我試圖進一步澄清它。 – BalusC 2010-04-19 01:35:04

回答

0

Parhs - 你真正需要的是一個JavaScript解析器。基本上,你將重新實現犀牛的部分,雖然理論上Rhino已經有了鉤子去做你需要的東西(我不太清楚它對它的熟悉程度)。或者你可以擴展Rhino,因爲它的源代碼可以從Mozilla中獲得100%的可用性。另一個可能的方向是谷歌的GWT。

+0

unluckilly我沒有提供太多的幫助... 只有擴展源將是一個解決方案 – GorillaApe 2010-04-19 01:38:52