# evalExpress **Repository Path**: oi-contrib/evalExpress ## Basic Information - **Project Name**: evalExpress - **Description**: 一个字符串表达式解析和求解运行库 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-02-27 - **Last Updated**: 2025-09-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: eval, parse ## README # [evalExpress](https://github.com/oi-contrib/evalExpress) 一个字符串表达式解析和求解运行库
## 如何使用?
```
npm install --save eval-express
```
然后就可以引入需要的方法:
```js
import { evalExpress, getValue, setValue } from "eval-express";
```
### evalExpress
解析对象上字符串表达式:
```js
var value=evalExpress(target, express, scope = {});
```
在指定对象target上求解表达式express的值,一个可选参数scope表示,如果scope有值,会拦截target,下同。
比如 现在有个json:
```js
var json = {
"a": {
"b": [1, 2, 3]
}
};
```
那么执行下面的语句:
```js
var result = evalExpress(json, 'a.b[0]-10');
```
结果result值就是:`-9`。
### getValue
获取对象上字符串表达式对应的值:
```js
var value=getValue(target, express, scope = {});
```
比如,现在有个json:
```js
var json = {
"a": {
"b": [1, { "d": "value" }, 3, 4]
}
};
```
那么执行下面的语句:
```js
var result = getValue(json, '["a"].b');
```
结果result值就是:`[1, { "d": "value" }, 3, 4]`。
### setValue
设置对象上字符串表达式对应的值:
```js
var newTarget=setValue(target, express, value, scope = {});
```
虽然会返回新的值,不过旧的值也同步修改了。
比如,现在有个json:
```js
var json = {
"key" : [1, 2, 3]
};
```
那么执行下面的语句:
```js
setValue(json, '.key[1]','newValue');
```
此时,原来的json的值就变成了:
```js
{
"key" : [1, "newValue", 3]
}
```
## 版权
MIT License
Copyright (c) [zxl20070701](https://zxl20070701.github.io/notebook/home.html) 走一步,再走一步