在vue中将输入的内容进行正则格式转换,这里主要是用来做楼层转换,传给后端的必须是某些格式,其中存数字,中间带、:|/-都可以,其他不行比如2-3这样,还会对总楼层等进行判断
//直接在需要的地方加入这个方法,可以使用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(':'