情景:
当我们进行微信小程序开发时,如果实现一个计算器功能,原本在做web开发时,是可以使用eval,直接把用户输入的字符串表达式进行计算的的,但是微信小程序禁掉了eval方法 ,甚至也禁掉了使用用Function进行构造,这时在小程序里面该怎么办呢?
解决方案:
我们可以使用zl_calculator_zl 模块, 这个模块能够实现类似于eval那样的功能,把字符串形式的表达式转换成真正的表达式进行计算,如:
以前:eval("1+2+3+4")
现在:zl_calculator_zl("1+2+3+4")
并且此模块不管是使用script,require, import 等方式都可以引入使用
此模块github地址:https://github.com/zl-fire/zl_calculator_zl
具体实现
1. 安装zl_calculator_zl模块
命令:npm i zl_calculator_zl -S
注意:
1. 使用npm安装时需要已经存在package.json文件才行哦
2. -S表示安装生产依赖,-D表示安装开发依赖
3. 下图是我在使用uniapp开始时,使用hubilderX终端安装的zl_calculator_zl模块
2. 在你的项目代码里面引入它
此模块可以在不同的环境下使用,如:微信小程序,浏览器,app
可以ES6的模块化方式引入:
import {zl_calculator_zl} from 'zl_calculator_zl'
也可以node的Commonjs 规范引入
var { zl_calculator_zl } = require("zl_calculator_zl")
还可以直接使用script标签方式引入
<script src="./zl_calculator_zl.js"> </script>
3. 在你的项目代码里面使用它
使用起来非常简单,不管是在什么环境,就像以前使用eval一样使用即可
var res=zl_calculator_zl("1+2+3+4")
4. 使用效果