假设我让用户使用Javascript编写条件,用户可以编写条件来执行测试并返回true或false。 E.g:
INS>5 || ASTO.valueBetween(10,210)
我想找到用户编写的脚本中使用的变量。我试图找到一种方法来获取Java中的标识符名称。 Rhino图书馆没有多大帮助。但是我发现通过处理异常我可以获得所有标识符。所以这个问题就解决了。
所以一切都很好,但有一个小问题。如何用数字标识符替换这些标识符?例如。 INS
应为_234
,ASTO
应为_331
。
INS
和ASTO
等是我数据库中的实体。我想替换它们,因为名称可能会改变。我可以使用替换来做到这一点,但这并不容易,因为:
ASTO
再次_234
和_234
再次ASTO
。_23
替换MPLAH
也可能会取代_234
。这可以用regexp以某种方式修复。_23
怎么办?很少发生,但可能/* _23 fdsafd ktl */
。它也应该被替换。_32() {}
。也很少见,但不应该更换。""
或''
?我确信还有很多案例。有什么想法吗?
答案 0 :(得分:0)
Parhs - 你真正需要的是一个JavaScript解析器。基本上,你将重新实现Rhino的部分虽然理论上可能Rhino已经有钩子来做你需要的东西(我不熟悉它所以不确定);或者您可以扩展Rhino,因为它的来源是Mozilla 100%可用的。另一个可能的方向是谷歌的GWT。