常用正则校验

9 篇文章 0 订阅
2 篇文章 0 订阅
/**
 * 判断手机号码是否正确
 */
export function isValidMobile(phone) {
  let result = true
  let msg = ''
  const list = [result, msg]
  let isPhone = /^1[3456789]\d{9}$/
  // 增加134 减少|1349[0-9]{7},增加181,增加145,增加17[678]
  if (!validatenull(phone)) {
    if (phone.length == 11) {
      if (!isPhone.test(phone)) {
        msg = '手机号码格式不正确'
      } else {
        result = false
      }
    } else {
      msg = '手机号码长度不为11位'
    }
  } else {
    msg = '请输入手机号码'
    result = true
    //  msg = '手机号码不能为空';
  }
  list[0] = result
  list[1] = msg
  return list
}
/**
 * url校验
*/
export function validURL(url) {
  const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
  return reg.test(url)
}
/**
 * 小写字母校验
 */
export function validLowerCase(str) {
  const reg = /^[a-z]+$/
  return reg.test(str)
}

/**
 * 大写字母校验
 */
export function validUpperCase(str) {
  const reg = /^[A-Z]+$/
  return reg.test(str)
}
/**
 * 邮箱校验
 */
export function validEmail(email) {
  const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
  return reg.test(email)
}
/**
 * 密码校验
 */
export const isValidPassword = (value) => {
  let result = []
  // const isPass = /^(?=.*?[0-9])(?=.*?[A-Z])(?=.*?[a-z])[0-9a-zA-Z]{8,}$/.test(value)
  const isPass = /^.*(?=.{8,})(?=.*?[0-9])(?=.*?[A-Z])(?=.*?[a-z])(?=.*[!@#$%^&_=\-\+*?\(\)]).*$/.test(
    value
  )
  result = [
    isPass,
    isPass ? '' : '密码不少于8位数,包含数字、大小写英文字母、特殊字符'
  ]
  return result
}
/**
 * 校验ip地址
 */
export const isValidIp = (value) => {
  return /^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$/.test(value)
}

el-form校验用法,拿密码校验举例

<template>
  <el-form ref="form" :model="form" label-width="150px" :rules="rules">  
      <el-form-item label="账号:" prop="userName">
        <el-input v-model="form.userName" />
      </el-form-item>      
      <el-form-item label="密码:" prop="password">
        <el-input type="password" v-model="form.password" required="true" />
      </el-form-item>
    </el-form>
</template>

<script>
import { isValidPassword} from '@/utils/validate'
export default {
  name: 'test',
  data() {
    let passwordValid = (rule, value, callback) => {
      const result = isValidPassword(value)
      if (!result[0]) {
        callback(new Error(result[1]))
      } else {
        callback()
      }
    }
    return {
      form: {
        userName:'',
        password: ''
      },
      rules: {
        userName: [
          { required: true, message: '请输入用户账号', trigger: 'blur' },
          { min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' }
        ],
        password: [
          {
            validator: passwordValid,
            trigger: 'blur'
          }
        ],
      }
    }
  },
  mounted() {
  },
  created() {},
  methods: {
  
  }
}
</script>

<style lang="scss" scoped>
</style>

其他校验补充

// 正整数校验
const reg = /^\d+$/;

// 非0开头的正整数校验
const reg = /^[1-9]\d*/;

// 负整数校验
const reg= /^-\d+$/;

// 整数校验
const reg = /^-?\d+$/;

// 1-99之间的数字校验
const reg = /^[1-9][0-9]{0,1}$/;

// 是否两位小数校验
const reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;

// 最多一位小数校验
const reg =  /^[0-9]+([.]{1}[0-9]{1})?$/;

// 纯数字校验
const reg = /^\d+$|^\d+[.]?\d+$/;

// 身份证校验
const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;

// 包含英文数字下划线校验
const reg = /^[_a-zA-Z0-9]+$/;

// 只能由英文、数字、下划线
const reg = /^\w+$/;

// 中文校验
const chineseReg = /^[\u0391-\uFFE5A-Za-z]+$/;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值