我正试图找出如何提取例如-13
,作为多项式的负值,例如-13x^2+2-12x^4
。到目前为止,我已经成功地除掉了异能者。另外,我的解决方案是这样的:
/(+)(-)d{1,4}/g
我知道这是错误的语法,但我不确定如何表示+
或-
与以下数字。如果你能告诉我如何计算下一个x
,就像一个常见/搜索短语的结尾,那就太好了,我不确定这个术语。比如,如果是-3x^而目的是提取-3
,那么应该是/ + or - /d{1,4} x_here/g
var formula = '-13x^2+2-12x^4';
formula.match(/[+-]?d{1,4}/g);
的回报:
["-13", "2", "+2", "-12", "4"]
如果你想把数字组织成系数和幂,这里有一个可行的方法:
var formula = '-13x^2+2-12x^4';
function processMatch(matched){
var arr = [];
matched.forEach(function(match){
var vals = match.split('^');
arr.push({
coeff: parseInt(vals[0]),
power: vals[1] != null ? parseInt(vals[1]) : 0
})
})
console.log(arr);
}
processMatch(formula.match(/[+-]?d+x^d+|[+-s]d[+-s]/g))
/* console output:
var arr = [
{ coeff: -13, power: 2 },
{ coeff: 2, power: 0 },
{ coeff: -12, power: 4 }
];*/
我想你要:
var str = '2x^2-14x+5';
var re = /([+-]?d{1,4})/g;
var result = str.match(re);