问题:拼接之后的正则表达式是字符串类型,直接使用无效
解决:需要将字符串利用eval转为正则,‘\’需要用\转义
eg:
// 根据业务需求限制输入小数点后num位
langReg(num){
var lang1='\\d'
for(var i=1;i<num;i++){
lang1 = lang1 + "\\d"
}
this.reg = '/^(\\-)*(\\d+)\\.('+ lang1 +').*$/'
},
// 输入时触发的函数
kepUp(){
// 小数点后N位
this.price = this.price.replace(/[^\d.]/g, '').replace(eval(this.reg), '$1$2.$3');
}