正则表达式的两种创建方式

前言


最近做地图时遇到输入经纬度,这时候需要前端对输入的经纬度进行校验,所以写了个正则表达式

隐式创建

var reg = /正则表达式/

显示创建


var reg = new RegExp(‘正则表达式’)

一下为经纬度的正则表达式的校验:

longitude: [
      { required: true, message: '请输入经度', trigger: 'blur' },
      {
        validator: (rule, value, callback) => {     
          if (value.length === 0) {
            callback(new Error('经度范围:-180.000000~180.000000'))
          } else {  
            var reg = /^[-+]?(180(\.0{0,6})?|([0-9]|[1-9][0-9]|1[0-7][0-9]|0{1,3})(\.\d{0,6})?)$/          
            if (!reg.test(value)) {
              callback(new Error('经度范围:-180.000000~180.000000'))
            } else {
              callback()
            }             
          }
        }
      }
    ],
    latitude: [
      { required: true, message: '请输入纬度', trigger: 'blur' },
      {
        validator: (rule, value, callback) => { 
          if (value.length === 0) {
            callback(new Error('纬度范围:-90.000000~90.000000'))
          } else {                
            var reg = /^-?((0|[1-8]?[0-9]?)(([.][0-9]{1,6})?)|90(([.][0]{1,6})?))$/
            if (!reg.test(value)) {
              callback(new Error('纬度范围:-90.000000~90.000000'))
            } else {
              callback()
            }
          }
        }
      }
    ]