如何从多项式字符串中提取数字(包括+和-符号)



我正试图找出如何提取例如-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);

最新更新