增加適應這種公式:=e8+(d10+......-d25)
其中 d10+......-d25 表示
d10-d11+d12-d13+d14-d15+d16-d17+d18-d19+d20-d21+d22-d23+d24-d25
大神,麻煩幫忙修改一下,無限感謝!
要求:
a1+.....+a4,代表連續相加:a1+a2+a3+a4
c1+...-c4如上面案案例,間隔加減:c1-c2+c3-c4
<table id="tab">
<tr>
<td id="a1">70</td>
<td id="a2">-60</td>
<td id="a3"></td>
<td id="a4">10</td>
<td id="a5">=a1-a2-b5</td>
</tr>
<tr>
<td id="b1">10</td>
<td id="b2">20</td>
<td id="b3">60</td>
<td id="b4">40</td>
<td id="b5">=a1+(b1+....-b4)</td>
</tr>
<tr>
<td id="c1">20</td>
<td id="c2">30</td>
<td id="c3">60</td>
<td id="c4">=a1+.....+a4</td>
<td id="c5">=c1+...-c4</td>
</tr>
</table>
<script type="text/javascript">
function calc(obj) {
var str = obj.innerText;
if (/^\s*$/.test(str))
return 0;
if (str[0]=="=") {
obj.innerText = eval(str.slice(1).replace(/([a-z]+)(\d+)([\+\-\*\/])\.{3,}([\+\-\*\/])([a-z]+)(\d+)/ig,function (s,w1,n1,c1,c2,w2,n2) {
var arr = [];
n1 = parseInt(n1, 10);
n2 = parseInt(n2, 10);
for (var i = n1; i < n2; i++)
arr.push(w1+i);
return arr.join(c1)+c2+w2+n2;
}).replace(/[a-z]+\d+/ig,function (s) {
return "("+calc(document.getElementById(s))+")";
}));
}
return obj.innerText;
}
var td = document.querySelectorAll("#tab td");
for (var i = 0, len = td.length; i < len; i++) {
calc(td[i]);
}
</script>
uj5u.com熱心網友回復:
<table id="tab">
<tr>
<td id="a1">70</td>
<td id="a2">-60</td>
<td id="a3"></td>
<td id="a4">10</td>
<td id="a5">=a1-a2-b5</td>
</tr>
<tr>
<td id="b1">10</td>
<td id="b2">20</td>
<td id="b3">60</td>
<td id="b4">40</td>
<td id="b5">=a1+(b1+....-b4)</td>
</tr>
<tr>
<td id="c1">20</td>
<td id="c2">30</td>
<td id="c3">60</td>
<td id="c4">=a1+.....+a4</td>
<td id="c5">=c1+...-c4</td>
</tr>
</table>
<script type="text/javascript">
function calc(obj) {
var str = obj.innerText;
if (/^\s*$/.test(str))
return 0;
if (str[0]=="=") {
obj.innerText = eval(str.slice(1).replace(/([a-z]+)(\d+)([\+\-\*\/])\.{3,}([\+\-\*\/])([a-z]+)(\d+)/ig,function (s,w1,n1,c1,c2,w2,n2) {
n1 = parseInt(n1, 10);
n2 = parseInt(n2, 10);
var str = w1 + n1;
for (var i = n1+1; i <= n2; i++)
str += ((n2-i)%2==0?c2:c1) + w1 + i;
return str;
}).replace(/[a-z]+\d+/ig,function (s) {
return "("+calc(document.getElementById(s))+")";
}));
}
return obj.innerText;
}
var td = document.querySelectorAll("#tab td");
for (var i = 0, len = td.length; i < len; i++) {
calc(td[i]);
}
</script>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/241679.html
標籤:JavaScript
