前言:onkeyup、onchange、oninput的区别a、onkeyup="value=value.replace(/[^\d]/g,'')"使用onkeyup事件,有个bug,就是在中文输入法状态下,输入汉字后直接回车,直接输入字母b,onchange="value=value.replace(/[^\d]/g,'')"使用onchange事件,之后进入内容,只有input丢了只有焦点上才会得到结果,输入c时无法响应,oninput="value=value.replace(/[^\d]/g,'')》使用了oninput事件,完美解决了以上两种此类问题,目前测试还没有出现其他问题。Text1.只允许输入带小数点的正数(小数位数有限制)input事件,keyup事件(不推荐,输入字母就能看到清算动作)inputTradeNum(){varreg=/^(\.*)(\d+)(\.?)(\d{0,2}).*$/g;if(reg.test(this.params.num)){//正则匹配通过,提取有效文本this.params.num=this.params.num.replace(reg,"$2$3$4");}else{//正则匹配失败,直接清除this.params.num="";}返回this.params.num;//返回满足要求的Text(最多保留2位小数的数字)},//方法二.小数精度动态赋值inputTradeNum(value){//后台返回当前货币的小数精度varcurCionScale=value||8;varreg=newRegExp(`^(\\.*)(\\d+)(\\.?)(\\d{0,${curCionScale}}).*$`,"g");if(reg.test(this.params.num)){//正则匹配但是,提取有效文本this.params.num=this.params.num.replace(reg,"$2$3$4");}else{//正则匹配失败,直接清除this.params.num="";}返回this.params.num;//返回符合要求的文本},2.只允许输入包含小数的正数(小数不限,不常用)inputTradeNum(){this.params.num=this.params.num.replace(/[^\d^\.]+/g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')},3.判断字符串是否包含数字、字母、特殊字符constreg=newRegExp("(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{6,30}");//必须包含数字、字母、特殊字符,三者缺一不可if(!reg.test(self.form.password)){self.$message.error(self.$t("register.t31"));返回;}4。只能输入数字和英文
