Javascript 如何使用正则表达式将变量替换为计算字符串中的值?
我想创建一个带有变量的计算器,但是变量和计算是由用户定义的。我已经做了一个程序来获取所有这些东西,但是现在我想用它们在计算中的值来替换变量 为了确保不只是替换变量的一部分(例如,如果定义了'm'和'm1',我不想用'm'值替换'm1'中的m),我必须遵守以下条件:Javascript 如何使用正则表达式将变量替换为计算字符串中的值?,javascript,regex,Javascript,Regex,我想创建一个带有变量的计算器,但是变量和计算是由用户定义的。我已经做了一个程序来获取所有这些东西,但是现在我想用它们在计算中的值来替换变量 为了确保不只是替换变量的一部分(例如,如果定义了'm'和'm1',我不想用'm'值替换'm1'中的m),我必须遵守以下条件: 在变量名之前,有一个左括号或一个操作 在变量名之后,有一个右括号或一个操作 当我进行计算时,空间将被删除(我还没有包括该功能) 为此,我编写了以下代码: for (var i = 0; i < names.length; i
- 在变量名之前,有一个左括号或一个操作
- 在变量名之后,有一个右括号或一个操作
for (var i = 0; i < names.length; i++)
{
regex = "(\+|\-|\*|\/|\()" + names[i].value + "(\+|\-|\*|\/|\))"
replacement = "$1" + values[i].value + "$2"
calculation = calculation.replace(regex, replacement)
}
for(变量i=0;i
例如,对于变量“m”,我得到正则表达式:(\+\\-\*\\*\/\\\())m(\+\\-\\*\*/\\)
问题是什么也找不到(我试过
(m+n+x)
)。我知道问题来自正则表达式,但我找不到它。您的regex
没有被视为正则表达式,而只是一个普通的字符串
相反,将其转换为新的RegExp()
。请注意,模式字符串中的单个\
将被删除(因为这是标准的转义字符),因此需要对其进行“双重转义”
constnames=[{value:“a”},{value:“b”}];
常量值=[{value:1},{value:5}];
let calculation=“(a+b)”;
对于(var i=0;i 控制台日志(计算)代码>我只是忘了在计算开始和结束时写(
和)
。我已经逃过了/
,但这并没有改变任何事情。我该如何修复它?(目前,我刚刚在PHP和C++中使用正则表达式,从未在JS中使用)