2014-02-17 26 views
0

我有一個包含這樣的公式作爲字符串的Javascript/jQuery的:替換字符串匹配{X}的項目 「jQuery的( '#resultsx')VAL()」

{1}+{2}-{3}*{4} 

,我想轉成不同的輸入字段的值,如

<input id="results1" value="15"> 
<input id="results2" value="25"> 
<input id="results3" value="35"> 
<input id="results4" value="45"> 

因此,它會變成像

15+25-35*45 

然後將計算到 - 1535

希望我已經解釋了我想要做的事情,但是讓我知道如果我沒有。我嘗試過使用正則表達式,但不能完全理解它,我不確定這是我應該走的方向。

+1

那麼,它很容易匹配字符串'/ {(\ d +)} /'但你在替換做什麼? – sln

+0

「{1}」將轉到「#results1」,它將轉到「jQuery('#results1')。val()」,它將是「15」。 – joshhunt

回答

2

.replace()可以作爲第二個參數。這將有助於在這裏:​​

var equ = '{1}+{2}-{3}*{4}'; 
equ = equ.replace(/{(\d+)}/g, function(match, $1){ 
    return $('#results'+$1).val(); 
}); 
+2

最後你想'eval(equ);' – brandonscript

+0

@remus:一旦你確認該字符串只包含數字和運算符:) –

+0

/DEFINITELY /:D – brandonscript