问题一、 正则限制金额数字小数点后两位

1
2
3
4
5
let reg = /^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/

let num = 1.234

reg.test(num) // false

问题二、 js 去除字符串最后一个逗号

1
2
3
4
5
6
7
8
9
// 第一种

let s = '1,2,3,4,'
s = s.Substring(0, s.lenght - 1)

// 第二种

let reg=/,$/gi
s = s.replace(reg,"")

问题三、 vue数组通过 push 但是视图未更新

已知 push() 在vue中是变异的数组操作方法会触发视图更新,但是视图就是没有更新。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// 数据格式如下:

data: {
list: []
}

data.list.push(obj)

以上操作,在vue中看见数据已经添加,但是页面就是无法刷新,尝试如下方法:

// 通过 Vue.set() 无效

this.$set(this.data.list,data.list.length + 1, obj)

// 通过 Object.assign() // 无效

this.data.list = Object.assign({}, this.data.list, obj)

// 解决,将data中的list提取到外部,然后再赋值

data: {

},
list: []

this.list.push(obj)

this.data.list = Object.assion({}, this.data.list, this.list)

感觉很纳闷,这样就可以了,网上也查了很多资料,没有找到实际答案。有知道问题的小伙伴么。