input的type为number时,英文输入法输入e无效和不能输入负数 :
<input type="number" class="num" onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))" οnkeyup="(this.v=function(){this.value=this.value.replace(/[^0-9-]+/,'');}).call(this)" οnblur="this.v();"/>
type="number"的时候,输入e会有输出,限制e的输出关键代码(有一个缺陷是,中文输入法可以输出e,英文输入法不能输入):
onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
限制输入负数:
οnkeyup="(this.v=function(){this.value=this.value.replace(/[^0-9-]+/,'');}).call(this)" οnblur="this.v();"
限制输入正整数:
<input type="number" onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}" onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}">
<el-input placeholder="请输入" v-model="timeLimit" onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\D/g,'')}"></el-input>
密码框设置:
<!-- Vue template -->
<input v-model="inputVal" @input="inputHandler($event)" :value="inputVal">
<!-- script -->
data() {
return {
inputVal: ''
}
},
methods: {
inputHandler(event) {
this.inputVal = event.target.value.replace(/[^\w\.\/]/ig,''); // 百度搜到只能输入数字和英文,但是特殊字符还是能输入
let reg = /^[a-zA-Z0-9]+$/;
if(!reg.test(this.inputVal)) {
// 特殊字符校验不通过
alert('不能输入除英文字母和数字以外的字符!');
}
}
}
vue监听input输入情况:
<input @input="checkInput" /> // template标签
// script标签的methods
checkInput() {
}