假设我让用户使用 Javascript 编写条件,用户可以编写条件来执行测试并返回 true 或 false。例如:
INS>5 || ASTO.valueBetween(10,210)
我想找出用户编写的脚本中使用了哪些变量。我试图找到一种在 Java 中获取标识符名称的方法。Rhino 库没有多大帮助。但是我发现通过处理异常我可以获得所有的标识符。所以这个问题就解决了。
所以一切都很好,但有一个小问题。如何用数字标识符替换这些标识符?例如INS
应该是_234
并且ASTO
应该是_331
。
INS
等ASTO
是我数据库中的实体。我想替换它们,因为名称可能会改变。我可以使用替换来做到这一点,但这并不容易,因为:
- 它应该是可逆的。例如
ASTO
to_234
和_234
toASTO
再一次。 - 替换
_23
为MPLAH
也可能替换为_234
. 这可以通过正则表达式以某种方式解决。 - 如果
_23
在评论区怎么办?很少发生,但有可能/* _23 fdsafd ktl */
。它也应该被更换。 - 如果它是函数的名称怎么办?例如
_32() {}
。也很少见,但不应更换。 - 如果它包含在
""
or中''
怎么办?
我相信还有更多的案例。有任何想法吗?