vue中对el-input输入的内容进行正则判断,两个字符中间有分隔符验证,楼层输入格式修改正则转换,判断前后字符之间,使用的是否为、:|/-如果不是则会取消
//直接在需要的地方加入这个方法,可以使用el-inpu的change事件
houseDataLc(value){
// "(^(([1-9]+|-[1-9]+)(-|:|:|([\|]{1,})|、|/)([[1-9]*|-[1-9]+))$)" //这是和下面差不多正则,但是就是有一点点的问题,没有改好
if(!this.houseData.zlc){
this.$set(this.houseData,'lc','')
return this.$message('请先输入总楼层');
}
// var reg = new RegExp("^-?(([1-9]\d* (:|:|([\|]{1,})|-|、|/)-?[1-9]\d*)|([1-9]\d*))$"); //正则这样的时候基本可以用,但是这样使用出现了正则不能正确判断的情况,改为的下面那种,有大佬看了可以告诉下为什么吗
//下面一行判断是因为正则多个转义符或显示有问题,就取消了下面一行的检验
// eslint-disable-next-line
var reg = /^-?(([1-9]\d*(\:|\:|\||\-|\、|\/)-?[1-9]\d*)|([1-9]\d*))$/;
if(value%1 === 0){
+this.houseData.zlc >= value? this.$set(this.houseData,'lc',value):this.$set(this.houseData,'lc','') //这里是用来判断是否是存数字的
return false
//下面是对各种情况做判断,因为-可能为负楼层,可能为中间的分隔符,所以判断比较多,放最后
}else if(reg.test(value) &&this.houseData.zlc){
if(value.split(':').length === 2){
+value.split(':')[0] < +value.split(':')[1]? +this.houseData.zlc >= +value.split(':')[1]? this.$set(this.houseData,'lc',value):this.$set(this.houseData,'lc',''):this.$set(this.houseData,'lc','')
return false
}
if(value.split(':').length === 2){
+value.split(':')[0] < +value.split(':')[1]? +this.houseData.zlc >= +value.split(':')[1]? this.$set(this.houseData,'lc',value):this.$set(this.houseData,'lc',''):this.$set(this.houseData,'lc','')
return false
}
if(value.split('/').length === 2){
+value.split('/')[0] < +value.split('/')[1]? +this.houseData.zlc >= +value.split('/')[1]? this.$set(this.houseData,'lc',value):this.$set(this.houseData,'lc',''):this.$set(this.houseData,'lc','')
return false
}
if(value.split('|').length === 2){
+value.split('|')[0] < +value.split('|')[1]? +this.houseData.zlc >= +value.split('|')[1]? this.$set(this.houseData,'lc',value):this.$set(this.houseData,'lc',''):this.$set(this.houseData,'lc','')
return false
}
if(value.split('-').length === 2){
+value.split('-')[0] < +value.split('-')[1]? +this.houseData.zlc >= +value.split('-')[1]? this.$set(this.houseData,'lc',value):this.$set(this.houseData,'lc',''):this.$set(this.houseData,'lc','')
return false
}
if(value.split('-').length === 3){
// ('-')[1] === ''?this.$set(,'lc',''):this.$set(,'lc',value)
// (('-'));
+value.split('-')[1] === ''? +this.$set(this.houseData,'lc',''): +this.houseData.zlc >= +value.split('-')[2]?this.$set(this.houseData,'lc',value):this.$set(this.houseData,'lc','')
return false
}
if(value.split('-').length === 4){
-value.split('-')[2]< -value.split('-')[4]?+this.houseData.zlc >= +value.split('-')[4]?this.$set(this.houseData,'lc',value):this.$set(this.houseData,'lc',''):this.$set(this.houseData,'lc','')
return false
}
}else{
this.$message('请输入正确的格式');
this.$set(this.houseData,'lc','')
}
},