[Vue.js实战]p50 提及的正则表达式的解析(/ \B ( ?= ( \d { 3}) +$) I g,’,’);)

书中 p50 的函数

totalPrice(){
            var total = 0;
            for(var i=0; i <this.list.length;i++){
                var item = this.list[i];
                total += item.price * item.count;
            }
            return total.toString().replace(/\B(?=(\d{3})+$)/g,',');
        }

中有一正则表达式:

(/\B(?=(\d{3})+$)/g,',')

解析如下:

\B,即左侧为非单词边界,也即是说,是在整个字符串中进行匹配。

(?=,表示这是一个肯定顺序环视,即子表达式能够匹配右侧的文本

(\d{3})+,表示应匹配一个 3 位的数字,+号表示匹配一个至无数个

$符号表示字符串末尾。

整个正则的意思是从字符串的末尾开始,每找到一个 3 位数字前的空位,则在空位处插入一个 , 逗号。

效果见截图:

 

posted @ 2020-04-17 20:56  sx00xs  阅读(512)  评论(0编辑  收藏  举报