问题遇到的现象和发生背景
根据用户输入的信息内容获取温度数值进行判断。如信息为:预计今天6:30-9:00,贵阳市城区有阵雨,气温26-28℃,雨天出行请减速慢行,注意安全。
判断用户输入的温度情况:第一个温度小于第二个温度,并且最低温度不能低于-10℃,最高温度不能高于42℃。
不能判断气温-5--2℃ 以及-2-9℃的这种情况
我目前只实现了零上温度判断(当温度只有一个时)
用代码块功能插入代码,请勿粘贴截图
watch:{
'temp.content':{
handler(newV, oldV) {//适合出现单个℃
const reg = /-?(\d+)?-?(\d+)℃/
if(reg.test(newV)){
let item = newV.match(/-?(\d+)?-?(\d+)℃/)
let preTemp = item[1]
let nextTemp = item[2]
console.log(item,preTemp,nextTemp,reg.test(newV))
if(Number(preTemp) > Number(nextTemp) ) {
this.$message({
message: "前面温度不能大于后面温度!",
type: "error",
});
}
// 判断范围--2℃~40℃ 如果为-5℃ 只获取到5
if( (Number(nextTemp) < -2 || Number(nextTemp) > 41 ) || (Number(preTemp) < -2 || Number(preTemp) > 41 )) {
this.$message({
message: "输入的最低温度不能小于-2℃,最高不能大于40℃",
type: "error",
});
}
}
},
// immediate: true,
deep: true
}
}
运行结果及报错内容
(3) ['26-28℃', '26', '28', index: 25, input: '预计今天6:30-9:00,贵阳市城区有阵雨,气温26-28℃,雨天出行请减速慢行,注意安全。', groups: undefined]
0: "26-28℃"
1: "26"
2: "28"
groups: undefined
index: 25
input: "预计今天6:30-9:00,贵阳市城区有阵雨,气温26-28℃,雨天出行请减速慢行,注意安全。"
length: 3
[[Prototype]]: Array(0)
当气温为-5--2时
0: "--2℃"
1: undefined
2: "2"
以上的问题无法实现 ;
如果输入内容为 贵阳市最高气温16-21℃,最低气温12-15℃ 时 只判断第一个 无法判断第二个
我想要达到的结果
想要实现 能够获取输入零下,含多个℃时的判断