2015-10-17 55 views
0

我想弄清楚如何提取例如-13,作爲多項式中的負值,例如, -13x^2+2-12x^4。到目前爲止,我已經成功地拿走了權力。此外,我的解決辦法想出了這個:如何從多項式字符串中提取數字(包括+和 - 號)

/\(+)(-)\d{1,4}/g 

我知道這是錯的語法,但我不知道如何表示+-與以下號碼去。 如果你能告訴我如何計算下一個x就好像一個普通/被搜索的短語的結尾,我不確定這個詞是否會很好。你知道,如果它是-3x ^和點是提取-3,那麼它應該像/\ + or - \/d{1,4} x_here/g

+2

'(+ | - )'........... – zerkms

+0

@zerkms取決於我是使用新的RegExp()類還是普通的=/things /模式,因爲現在它看起來像這樣: sc = str_input.match'(/(+ | - )\ d {1,4}/g)'指出錯誤...無效的語法,確實 – KDX2

+0

Escape'+'as '\ +' – zerkms

回答

3
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 }   
];*/ 
3

我想你想:

var str = '2x^2-14x+5'; 
var re = /([+-]?\d{1,4})/g; 
var result = str.match(re); 
相關問題