作为我正在开发的 Java webapp 的一部分,我需要为一些从数据库加载的 URI 添加前缀,例如
"controller.jsp?page=list"
变成……
<a href="${legacyBaseUrl}/controller.jsp?page=list">...</a>
简单的。尽管数据库中的某些 URI 包含 Javascript,但会出现问题,例如
"javascript:window.open('controller.jsp?page=popup')"
我希望能够做的是...
<a href="javascript:window.open('${legacyBaseUrl}/controller.jsp?page=popup')">...</a>
或者更好……
<a href="${legacyBaseUrl}/controller.jsp?page=popup" target="_blank">...</a>
我知道我可以用正则表达式将它分开,但我很谨慎地将其视为一个简单的字符串操作问题,因为数据从未被清理过,并且数据库中可能有任何 Javascript。
是否有一种(相对)简单的方法可以在 Java 中正确解析 Javascript,并识别/提取对 window.open 或其他 JS 函数的调用?
我已经简要地查看了 Rhino 或 javax.script 之类的东西,但有点迷茫。这是否适合我的需求?正则表达式实际上就足够了吗?有什么建议么?