jiuyublue 2022-09-29 18:09 采纳率: 100%
浏览 31
已结题

vue项目中获取文本内容里的温度数值

问题遇到的现象和发生背景

根据用户输入的信息内容获取温度数值进行判断。如信息为:预计今天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℃ 时 只判断第一个 无法判断第二个

我想要达到的结果

想要实现 能够获取输入零下,含多个℃时的判断

  • 写回答

1条回答 默认 最新

  • MAXLZ 2022-09-29 18:38
    关注
    function compareTemperatures(low, high) {
      if (low > high) {
        throw new Error(`${low}℃不能高于${high}℃`)
      } else if (low < -10){
        throw new Error(`最低气温不能低于-10℃`)
      } else if (high > 42) {
        throw new Error(`最高气温不能高于-42℃`)
      }
    }
    
    function formatTemperature(str) {
      const match = str.match(/(-?\d+.?\d+)-(-?\d+.?\d+)℃/g)
      match.forEach(item => {
        const [ ,low, high ] = item.match(/(-?\d+.?\d+)-(-?\d+.?\d+)℃/)
        compareTemperatures(low * 1, high * 1)
      })
    }
    const t = '贵阳市最高气温2-21℃,最低气温22-15℃ 时 只判断第一个 无法判断第二个'
    
    console.log(formatTemperature(t))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 10月8日
  • 已采纳回答 9月30日
  • 创建了问题 9月29日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀