前端两三问

214 阅读1分钟

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

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 去除字符串最后一个逗号

// 第一种

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

// 第二种

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

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

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

// 数据格式如下:

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)

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