[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 位数字前的空位,则在空位处插入一个 , 逗号。
效果见截图: