参考链接:http://www.w3school.com.cn/jsref/jsref_replace.asp
$1、$2、...、$99 | 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。 |
$& | 与 regexp 相匹配的子串。 |
$` | 位于匹配子串左侧的文本。 |
$' | 位于匹配子串右侧的文本。 |
$$ | 直接量符号。 |
谢谢回答。
w3school上解释有点少,我还是不理解,‘$&’替换与regexp相匹配的子串。 如果字符串str=123456789.00,替换结果应该是“123,456,789.00”,按照我的理解‘$&,’在regexp=/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, 匹配的应该是'123'吧,然后把'123'换成'123,', 那么后续的','是怎么添加上的?
@liuqingsha3: '$&,' ,注意看这个字符串,里面可是有逗号的哦!
@幻天芒: 我注意到‘$&,’中的‘,’了。
我指的是替换后,应该有一个逗号啊,变成这样‘123,456789.00’,之后的456后面的逗号,还没有放上呢。
是不是这个/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g中的(?=patton)正向肯定预查可以查询多次啊,比如第一次查询出123(...),把'123'换成'123,',然后继续查询出456(...),把'456'替换成'456,',再继续查就没有符合的了,所以查询替换停止了,最终替换变成了“123,456,789.00”。
也就是说这个替换中,存在多个替换呢? 可以这样理解吗???
@liuqingsha3: 注意看正则,后面有个/g,这个参数就代表多次替换。
@幻天芒: 恩,好, 谢谢了!!!
@幻天芒: 请问最后两位小数怎么让它显示的是四舍五入的,而不是显示的00
@xuguoqi: 默认就是四舍五入。
(5.155).toFixed(2); // => '5.16'。 // 注意,计算机上的四舍五入和数学上的四舍五入有差异,需要判断前一位的奇偶。 如:(5.255).toFixed(2); // => '5.25'
@幻天芒:
function format (num) {
return (num.toFixed(2) + '').replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,');
}
帮忙看下这段代码可不可以让小数部分是四舍五入
@xuguoqi: 这种就不应该让正则来做。先取出数字,然后在toFixed即可。
请问最后两位小数怎么让它显示的是四舍五入的,而不是显示的00