使用jquery用括号()替换减号

时间:2018-01-09 14:54:21

标签: javascript jquery

- HTML -

<table>
<tr>
<th>a</th>
<th>b<th>
</tr>
<tbody class = "tabledata">
<tr>a</tr>
<tr>b</tr>
</tbody>
</table>

- 的jquery -

 $('.tabledata').empty();
for (var i = 0; i < result.length; i++) {
                var abc = '<tr><td>' + result[i]['a'] + '</td><td>' + result[i]['b'] + '</td></tr>'
                //var results = abc.replace(/-(.*)/, "()");

                $('.tabledata').append(abc);
}

结果带有诸如-245.1,-897.7等关键值。我想将它们改为(245.1)和(897.7)。我尝试过.replace功能但无法正常工作。

1 个答案:

答案 0 :(得分:2)

您可以在创建Math.abs本身

时使用abc
var a  = "(" + Math.abs( result[i]['a'] ) + ")";
var b  = "(" + Math.abs( result[i]['b'] ) + ")";
var abc = '<tr><td>' + a + '</td><td>' + b + '</td></tr>'

或者进行一些重构以使代码更简洁

var fnAbs = ( s ) => "(" + Math.abs( s ) + ")";
var abc = '<tr><td>' + fnAbs( result[i]['a'] ) + '</td><td>' + fnAbs( result[i]['b'] )  + '</td></tr>';

如果您不想用()包装非负值,请将fnAbs更改为

var fnAbs = ( s ) => +s < 0 ? "(" + Math.abs( s ) + ")" : s;

注意

+s < 0,在比较之前将s转换为数字,例如s类型为"string"