首页 > 其他分享 >JS经纬度正则验证

JS经纬度正则验证

时间:2023-09-16 14:05:36浏览次数:39  
标签:经纬度 formValidation 180 value JS callback 正则 90

需求:一个页面多个经纬度需要经验,然后采用此方法就可以一步到位啦

1.在util.js全局写经纬度的范围校验

代码如下:

const formValidation = {
    //经度
    validatorLongitude: (rule, value, callback) => {
        const reg = /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,15})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,15}|180)$/
        if(value === ""){
            callback(new Error('请输入经度'));
        }else{
            if(!reg.test(value)){
                callback(new Error('经度范围:-180~180(保留小数点后十五位)'));
            }
            callback();
        }
    },
//纬度
    validatorLatitude: (rule, value, callback) => {
        const reg = /^(\-|\+)?([0-8]?\d{1}\.\d{0,15}|90\.0{0,15}|[0-8]?\d{1}|90)$/
        if(value === ""){
            callback(new Error('请输入纬度'));
        }else{
            if(!reg.test(value)){
                callback(new Error('纬度范围:-90~90(保留小数点后十五位)'));
            }
            callback();
        }
    },
       
}
 
export default formValidation

然后在main.js引入

代码如下:

// 经纬度验证
import formValidation from "../src/util/formValidation"
Vue.prototype.formValidation = formValidation;

最后在你需要的页面上这样写:

代码如下:

<el-form :model="machineAdd" :rules="rules" ref="machineAdd" label-width="100px">
                  <el-row :gutter="20">
                    <el-col :span="10">
                      <div class="grid-content bg-purple">
                        <el-form-item label="设备名称">
                          <el-input v-model="machineAdd.machineName" placeholder="请输入设备名称"></el-input>
                        </el-form-item>
                      </div>
                    </el-col>
                    <el-col :span="10">
                      <div class="grid-content bg-purple">
                        <el-form-item label="经度" prop="longitude">
                          <el-input v-model="machineAdd.longitude" placeholder="请输入经度"></el-input>
                        </el-form-item>
                      </div>
                    </el-col>
                  </el-row>
                  <el-row :gutter="20">
                    <el-col :span="10">
                      <div class="grid-content bg-purple">
                        <el-form-item label="机巢序列号" prop="serialNumber">
                          <el-input v-model="machineAdd.serialNumber" maxlength="24" placeholder="请输入机巢序列号"></el-input>
                        </el-form-item>
                      </div>
                    </el-col>
                    <el-col :span="10">
                      <div class="grid-content bg-purple">
                        <el-form-item label="纬度" prop="latitude">
                          <el-input v-model="machineAdd.latitude" placeholder="请输入纬度"></el-input>
                        </el-form-item>
                      </div>
                    </el-col>
                  </el-row>
</el-form>

rules这个表单验证统一写一个就好啦~ 

longitude: [
          {
            required: true,
 //此处的'formValidation'不可随着:model改变而改变,因为formValidations.js已经定义好的,全局使用
            validator: this.formValidation.validatorLongitude, 
            message: "经度范围:-180~180(保留小数点后十五位)",
            trigger: "blur"
          }
        ],
        latitude: [
          {
            required: true,
            validator: this.formValidation.validatorLatitude,
            message: "纬度范围:-90~90(保留小数点后十五位)",
            trigger: "blur"
          }
        ],

这样不管你一个页面多个经纬度需要校验,都可以一步到位啦,这样就不需要写很多相同的代码了

标签:经纬度,formValidation,180,value,JS,callback,正则,90
From: https://blog.51cto.com/u_15335909/7492893

相关文章

  • jsp 之文件包含漏洞
    一、静态包含被静态包含文件的后缀名可以是txt、png、jpg等,只要文件内容是正常的jsp内容,被包含文件就可以正常加载、编译和执行。<%@pagecontentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><metacharset="UTF-8&qu......
  • el-upload file转blob 用于预览pdf.js和下载文件
    //file转blobfileToBlob(file,callback){consttype=file.type;constreader=newFileReader();reader.onload=(evt)=>{constblob=newBlob([evt.target.result],{type});if(typeofcallback==="f......
  • FastAPI学习-14. JSONResponse 返回JSON内容
    当你创建一个 FastAPI 路径操作 时,你可以正常返回以下任意一种数据:dict,list,Pydantic模型,数据库模型等等。FastAPI 默认会使用 jsonable_encoder 将这些类型的返回值转换成JSON格式,默认情况下会以content-type:application/json格式返回在有些情况下,我们需要在路径操......
  • 使用原生的js实现分享功能,代码非常精简
     分享一个原生的js实现移动端分享功能,希望大家喜欢。兼容性: 实现代码:functionshare(){if(!navigator.share){alert("您当前浏览器不支持分享!");}else{navigator.share({title:'{$title}',text:'{$introduce}',url:window.location.href});}}......
  • JSP
    一、JSP1.简介JSP(全称JavaServerPages)是由SunMicrosystems公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成HTML、XML或其他格式文档的Web网页的技术标准。JSP技术是以Java语言作为脚本语言的,JSP网页为整个服务器端的Java库单元......
  • js 事件循环
    JavaScript是一门单线程语言,单线程意味同一时间只能做一件事,这样没有造成堵塞就是因为事件循环。在javascript中所有任务可以分为同步任务,异步任务。同步任务:立即执行的任务,一般按照执行顺序直接进入主线程执行异步任务: 异步执行的任务,比如setTimeout,ajax请求等。当执行......
  • web 前端 tips:js 继承 —— 组合继承
    上篇文章给大家分享了js继承中的组合继承web前端tips:js继承——组合继承今天给大家分享一下js继承中的原型式继承原型式继承JavaScript的原型式继承是一种基于对象的继承方式,通过复制一个对象的属性和方法来创建一个新对象,并将原对象作为新对象的原型。这种继承方式可以......
  • threejs 4纹理
     ......
  • threejs 5材质
     ......
  • Web阶段:第四章:常用的正则表达式
    整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$只能输入数字:”^[0-9]*$”只能输入n位的数字:”^\d{n}$”只能输入至少n位的数字:”^\d{n,}$”只能输入m~n位的数字:”^\d{m,n}$”只能输入零和非零开头的数字:”^(0|[1-9][0-9]*)$”。只能输入有两位小数的正实数:”^[0-9]+(.[0-9]{2})?$”。只能......