# 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) 一个字符串表达式解析和求解运行库

downloads npm GitHub repo stars

NPM ## 如何使用? ``` 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) 走一步,再走一步