var variables = ['A','B'];
var allowedMathFunc = ['Sin','Cos','Tan']
var expression= 'Sin(B)+Tan(B)+100+acos(A)+C'
我想验证以下场景中的表达式字符串匹配
1.表达式应使用变量数组值
1.表达式不应包含允许的其他数学函数。
我试过以下代码
var variables = ['A','B'];
var allowedMathFunc = ['Sin','Cos','Tan']
var expression= 'Sin(B)+Tan(B)+100+acos(A)'
for variable check I tried this
let expressionVariables = value.replace(/Sin|Log|Exp|Tan|Pos|Rnd|[^A-Za-z]/ig,"");
let expressionUnUsedVar= variables.filter(v=> !expressionVariables.includes(v));
我不知道如何写两个场景的正则表达式,这不是一个问题,两个不同的正则表达式。
1条答案
按热度按时间okxuctiv1#
你可以使用regex来提取所有的变量和函数名,然后检查它们是否包含在允许的函数和变量列表中(区分大小写):