vue3+ts中判断输入的值是不是经纬度格式

vue3+ts中判断输入的值是不是经纬度格式

vue代码:

<template #bdjhwz="{ record }">
      <a-row :gutter="8" v-show="!record.editable">
        <a-col :span="12">
          <a-input placeholder="经度" v-model:value="record.lat" :max-length="15" @blur="latLngBlur(record, 'lat')" />
        </a-col>
        <a-col :span="12">
          <a-input placeholder="纬度" v-model:value="record.lng" :max-length="15" @blur="latLngBlur(record, 'lng')" />
        </a-col>
      </a-row>
    </template>

ts代码:

<script lang="ts" setup>
  import { ref, defineExpose, onMounted, Ref, watch } from 'vue';
  import { useMessage } from '/@/hooks/web/useMessage';
  
  const { createMessage: msg } = useMessage();

/**
   * 经纬度输入校验
   */
  const latLngBlur = (record, type = 'lat') => {
    if (record[type] && !isNaN(record[type])) {
      const num = Number(record[type]);
      const range = type === 'lat' ? { min: -90, max: 90 } : { min: -180, max: 180 };
      if (num > range.max || num < range.min) {
        msg.warn(`${type === 'lat' ? '纬度' : '经度'}格式输入有误!`);
        record[type] = '';
      } else {
        // 判断只能输入6位以内小数
        const dataArr = record[type].toString().split('.');
        if (dataArr.length == 2) {
          if (dataArr[1].length > 6) {
            msg.warn(`${type === 'lat' ? '纬度' : '经度'}只能输入6位以内小数!`);
            record[type] = '';
          }
        }
      }
    } else {
      msg.warn('请输入正确的数值!');
      record[type] = '';
    }
  };

</script>

效果:
在这里插入图片描述
在这里插入图片描述

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue 3和TypeScript获取当前经纬度可以通过浏览器的Geolocation API来实现。下面是一个简单的示例代码: 首先,你需要在Vue组件引入Geolocation API: ```typescript import { ref, onMounted } from 'vue'; export default { setup() { const latitude = ref<number | null>(null); const longitude = ref<number | null>(null); onMounted(() => { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition( (position) => { latitude.value = position.coords.latitude; longitude.value = position.coords.longitude; }, (error) => { console.error(error); } ); } else { console.error('Geolocation is not supported by this browser.'); } }); return { latitude, longitude, }; }, }; ``` 在上述代码,我们使用了Vue 3的Composition API来定义了两个响应式变量`latitude`和`longitude`,并在组件的`onMounted`生命周期钩子调用了`navigator.geolocation.getCurrentPosition`方法来获取当前位置的经纬度信息。 注意,由于获取位置信息是一个异步操作,所以我们使用了回调函数来处理成功和失败的情况。如果获取成功,我们将经纬度信息分别赋给`latitude`和`longitude`变量;如果获取失败,我们将错误信息打印到控制台。 最后,在模板可以通过`latitude`和`longitude`变量来展示当前的经纬度信息: ```html <template> <div> Latitude: {{ latitude }} Longitude: {{ longitude }} </div> </template> ``` 这样,当组件被挂载到页面上时,它会尝试获取当前位置的经纬度,并将结果显示在模板

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星月前端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值