例如:
var s = '3+3';
s.replace(/([\d.]+)([\+\-)([^,]*)/g,
function(all, n1, operator, n2) {
r = new Number(n1) ??? new Number(n2);
return r;
}
);
注意:不使用eval()
变量运算符可以吗? https://stackoverflow.com/questions/5834318/javascript-are-variable-operators-possible
开箱即用是不可能的,但他给出了一个很好的实现,如下所示。代码由delnan https://stackoverflow.com/users/395760/delnan.
var operators = {
'+': function(a, b) { return a + b },
'<': function(a, b) { return a < b },
// ...
};
var op = '+';
alert(operators[op](10, 20));
所以对于你的实施
r = operators[operator](new Number(n1), new Number(n2));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)