跨语言简单表达式语言实现
Cross language simple expression language implementation
是否存在一种非常简单的表达式语言,其解析器使用以下语言之一:
- JavaScript Scala
- Java
我想在对象上执行的操作类似于角表达式。http://teropa.info/blog/2014/03/23/angularjs-expressions-cheatsheet.html
然而,我不需要所有这些,因为我想要独立于语言的功能。暴露给表达式的对象应该是JSON。这意味着我不需要允许函数调用。过滤功能也不需要。
我想使用这个是为了在语言实现之间共享简单的验证表达式。
给定以下人
{
age: 17,
male: false,
country: 'US'
}
我可能想定义这样的验证规则
{
age: "(male && age >= 16) || (!male && age >= 18)", // => conditionally valid
country: "country == 'US'" // => valid
}
对于像这样应该返回真或假的简单表达式,我有什么替代方法?操作符不需要像上面的例子那样。and
可以代替&&
, lt
可以代替<
等。
我已经看到了一些替代方案,如http://docs.oracle.com/javaee/7/tutorial/doc/jsf-el007.htm#BNAIM,但我所看到的问题是,它们是为了在特定的上下文中使用,并且有几个隐式变量。他们有像lambda表达式之类的东西,这使得在语言中编写可能缺失的实现变得更加复杂。
Spring表达式语言支持Java, Javascript和。net:
- https://github.com/benmarch/spel2js
- http://www.springframework.net/doc-latest/reference/html/expressions.html
- https://docs.spring.io/spring/docs/3.0.x/reference/expressions.html
我使用过。net和Java版本,它们基本上都很好,尽管两者之间存在一些不一致。
您也可以使用JavaScript本身,许多现代语言都可以解析和计算JavaScript。
相关文章:
- 如何使用动画实现纸张推车
- 客户端服务器REST API captcha实现
- 如何实现此布局
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- Meteor忘记了密码的实现
- 使用Native Sockets在Android中实现WebSockets
- 在样板文件中实现Ajax
- instanceof是如何在JavaScript中实现的
- 如何正确实现Jquery多选小部件
- 实现一个建立在google.com之上的自定义搜索引擎
- 多个组件是如何实现的
- V8 JavaScript 引擎实现语言
- 具有不同语言选项的数据对象.Javascript实现
- 多语言网站-是否只有通过保存多语言文件或数据库才能实现
- 跨语言变量-实现
- 下面的反射语言特性和标准实现方式是否有名称?
- 通过浏览器/服务器语言实现html元素结构的最佳方式
- 跨语言简单表达式语言实现
- C 语言中的 ECMAScript-262 实现
- 哪一种编程语言具有Gnome 3的完整实现API(绑定)