js 正则表单验证

1. 保留2位小数

let AfpRule = (rule, value, callback) => {
      let reg = /^\d+(\.\d{0,2})?$/;
      if (!value) {
        callback();
      } else {
        if (!reg.test(value)) {
          callback(new Error('请输入≥0的数字,保留两位小数'));
        } else {
          callback();
        }
      }
    };

2. 输入数字时输入框自动补两位小数

<el-form-item label="退款金额(元)" prop="refundAmount" class="box">
          <el-input v-model="form.refundAmount" @blur="inputBlurItem1(form.refundAmount)" class="w-120" />
        </el-form-item>

// 保留2位小时 val是当前输入框值
    inputBlurItem1 (val) {
      if (val && /^((0|[1-9]\d{0,4}|[1]\d{0,4}|20000)(\.[0-9]{0,2}){0,1})$/.test(val)) {
        this.$set(this.hosGaResultInfoPO, ['item1'], Number(val).toFixed(2));
      }
    },

this.$set(更改的数据源,要更改的数据或者索引,重新赋的值)

//用于验证手机号
const checkPhone = (rule, value, callback) => {
    if (value && !(/^\d{11}$/.test(value))) {
        callback(new Error('请输入11位手机号'))
    } else {
        callback();
    }
};

// 1-99999的整数
const check = /^[1-9]{1}\d{0,4}$/

// 2-20个字的校验
const checkFont = (rule, value, callback) => {
    if (value && !(value.length > 1)) {
        callback(new Error('请输入2-20个字'))
    } else {
        callback();
    }
};

//不超过两百个字符
const length200 = (rule, value, callback) => {
    if (value && !(value.length < 200)) {
        callback(new Error('最大可输入200个字符'))
    } else {
        callback();
    }
};
// 纯汉字
const checkFontH = (rule, value, callback) => {
    if (value && !(/^[\u4e00-\u9fa5]+$/.test(value))) {
        callback(new Error('输入格式错误,请重新输入'))
    } else {
        callback();
    }
};

// 身份证号的校验
const idCard = (rule, value, callback) => {
    if ((value && !(/(^\d{15}$)|(^\d{17}(\d|X)$)/.test(value))) || (value && !(/^8[123]0000(?:19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}[\dX]$/.test(value)))) {
        callback(new Error('身份证号格式不对'))
    } else {
        callback();
    }
}
// 5位数字包含1位小数
const count5 = (rule, value, callback) => {
    if (value && !(/^([1-9]\d{0,2}|0)(\.\d{1}){0,1}$/.test(value))) {
        callback(new Error('请输入0-999,小数点后一位'))
    } else if (Number(value) > 999) {
        callback(new Error('请输入0-999,小数点后一位'))
    } else {
        callback();
    }
};
// 5位数字包含2位小数
const count52 = (rule, value, callback) => {
    if (value && !(/^(([1-9]\d{0,2})|0)(\.\d{0,2})?$/.test(value))) {
        callback(new Error('请输入0-999.99,小数点后两位'))
    } else if (Number(value) > 999.99) {
        callback(new Error('请输入0-999.99,小数点后两位'))
    } else {
        callback();
    }
};
// 最多5位数字
const countLength5 = (rule, value, callback) => {
    if (value && !(/^[0-9]{1,5}$/.test(value))) {
        callback(new Error('请输入不超过5位的数字'))
    } else {
        callback();
    }
};
// 最多3位数字
const countLength3 = (rule, value, callback) => {
    if (value && !(/^[0-9]{1,3}$/.test(value))) {
        callback(new Error('请输入不超过3位的数字'))
    } else {
        callback();
    }
};
// 数字
const count = (rule, value, callback) => {
    if (value && !(/^[0-9]$/.test(value))) {
        callback(new Error('请输入正整数'))
    } else {
        callback();
    }
};
// 纯整数数字
const countZS = (rule, value, callback) => {
    if (value && !(/^[0-9]{1,}$/.test(value))) {
        callback(new Error('请输入整数'))
    } else {
        callback();
    }
};
// 大于0的整数
const countB0 = (rule, value, callback) => {
    if (value && !(/^[0-9]{1,}$/.test(value))) {
        callback(new Error('大于0的整数'))
    } else if (value == 0) {
        callback(new Error('大于0的整数'))
    } else {
        callback();
    }
};
// 数字20以内
const count20 = (rule, value, callback) => {
    if (value && !(/^[0-9]{1,2}$/.test(value))) {
        callback(new Error('请输入1-20的整数'))
    } else if (value < 1 || value > 20) {
        callback(new Error('请输入1-20的整数'))
    } else {
        callback();
    }
};
// 数字50以内
const count50 = (rule, value, callback) => {
    if (value && !(/^[0-9]{1,2}$/.test(value))) {
        callback(new Error('请输入1-50的整数'))
    } else if (value < 1 || value > 50) {
        callback(new Error('请输入1-50的整数'))
    } else {
        callback();
    }
};
// 数字50以内整数 0-50 的整数
const count50New = (rule, value, callback) => {
    if (value && !(/^[0-9]{1,2}$/.test(value))) {
        callback(new Error('请输入0-50的整数'))
    } else if (value < 0 || value > 50) {
        callback(new Error('请输入0-50的整数'))
    } else {
        callback();
    }
};
// 数字40以内小数
const count40a = (rule, value, callback) => {
    if (value == 0 && String(value).indexOf('.') == -1) {
        if (String(value).length > 1) {
            callback(new Error('请输入,0-40之内的数字,小数点后两位'))
        } else {
            callback();
        }
    } else if (String(value).split('.')[1] && String(value).split('.')[1].length > 2) {
        callback(new Error('请输入,0-40之内的数字,小数点后两位'))
    } else if (value && !(/^[0-9]{1,2}\.\d{0,2}$/.test(value))) {
        callback(new Error('请输入,0-40之内的数字,小数点后两位'))
    } else if (value < 0 || value > 40) {
        callback(new Error('请输入,0-40之内的数字,小数点后两位'))
    } else {
        callback();
    }
};
// 数字40以内
const count40 = (rule, value, callback) => {
    if (value && !(/^[0-9]{1,2}$/.test(value))) {
        callback(new Error('请输入1-40的整数'))
    } else if (value < 1 || value > 40) {
        callback(new Error('请输入1-40的整数'))
    } else {
        callback();
    }
}
// 数字60以内小数
const count60a = (rule, value, callback) => {
    if (value == 0 && String(value).indexOf('.') == -1) {
        if (String(value).length > 1) {
            callback(new Error('请输入0-60之内的数字,小数点后两位'))
        } else {
            callback();
        }
    } else if (String(value).split('.')[1] && String(value).split('.')[1].length > 2) {
        callback(new Error('请输入0-60之内的数字,小数点后两位'))
    } else if (value && !(/^[0-9]{1,2}\.\d{0,2}$/.test(value))) {
        callback(new Error('请输入0-60之内的数字,小数点后两位'))
    } else if (value < 0 || value > 60) {
        callback(new Error('请输入0-60之内的数字,小数点后两位'))
    } else {
        callback();
    }
};

// 数字60以内小数---不含0
const count60b = (rule, value, callback) => {
    if (value && !(/^(([1-5]\d|[0-9])(\.\d{1,2})|([1-5]\d|[0-9]|60))$/.test(value))) {
        callback(new Error('请输入0-60之内的数字,小数点后两位'))
    } else if (value <= 0 || value > 60) {
        callback(new Error('请输入0-60之内的数字,小数点后两位'))
    } else {
        callback();
    }
};
//   
const count60 = (rule, value, callback) => {
    if (value && !(/^[0-9]{1,2}$/.test(value))) {
        callback(new Error('请输入1-60的整数'))
    } else if (value < 1 || value > 60) {
        callback(new Error('请输入1-60的整数'))
    } else {
        callback();
    }
}
// 1-50之内的数字,保留小数点后两位
const countFloat50 = (rule, value, callback) => {
    if (value && !(/^(([1-4]\d|[1-9])(\.\d{1,2})|([1-4]\d|[1-9]|50 |50.00|50.0))$/.test(value))) {
        callback(new Error('请输入1-50之内的数字,小数点后两位'))
    } else if (value < 1 || Number(value) > 50) {
        callback(new Error('请输入1-50之内的数字,小数点后两位'))
    } else {
        callback();
    }
};
// 0-50之内的数字,保留小数点后两位
const countFloat050 = (rule, value, callback) => {
    if (value && !(/^(([1-4]\d|[0-9])(\.\d{1,2})|([1-4]\d|[0-9]|50))$/.test(value))) {
        callback(new Error('请输入0-50之内的数字,小数点后两位'))
        //   }else if(value == 0 || value > 50){
    } else if (value < 0 || value > 50) {
        callback(new Error('请输入0-50之内的数字,小数点后两位'))
    } else {
        callback();
    }
};
// 1-100之内的数字,小数点后两位
const countFloat100 = (rule, value, callback) => {
    if (value && !(/^(([1-9]\d|[1-9])(\.\d{1,2})|([1-9]\d|[1-9]|100))$/.test(value))) {
        callback(new Error('请输入1-100之内的数字,小数点后两位'))
    } else if (value < 1 || value > 100) {
        callback(new Error('请输入1-100之内的数字,小数点后两位'))
    } else {
        callback();
    }
};
// 0-100之内的数字,小数点后两位
const countFloat0100 = (rule, value, callback) => {
    if (String(value) == '100.0' || String(value) == '100.00') {
        callback();
    } else if (value && !(/^(([1-9]\d|[0-9])(\.\d{1,2})|([1-9]\d|[0-9]|100))$/.test(value))) {
        callback(new Error('0-100之内的数字,小数点后两位'))
    } else if (value > 100) {
        callback(new Error('0-100之内的数字,小数点后两位'))
    } else {
        callback();
    }
};
// 1-100之内的整数
const countInit100 = (rule, value, callback) => {
    if (value && !(/^([1-9]\d|[1-9]|100)$/.test(value))) {
        callback(new Error('请输入1-100的整数'))
    } else if (value < 1 || value > 100) {
        callback(new Error('请输入1-100的整数'))
    } else {
        callback();
    }
};
// 0-100之内的整数
const countInit0100 = (rule, value, callback) => {
    if (value && !(/^([1-9]\d|[1-9]|100|0)$/.test(value))) {
        callback(new Error('请输入0-100的整数'))
    } else if (value > 100) {
        callback(new Error('请输入0-100的整数'))
    } else {
        callback();
    }
};
// 1-10的整数
const countInit10 = (rule, value, callback) => {
    if (value && !(/^([1-9]|10)$/.test(value))) {
        callback(new Error('请输入1-10的整数'))
    } else if (value < 1 || value > 10) {
        callback(new Error('请输入1-10的整数'))
    } else {
        callback();
    }
};
// 1-12的整数
const countInit12 = (rule, value, callback) => {
    if (value && !(/^([1-9]|10|11|12)$/.test(value))) {
        callback(new Error('请输入1-12的整数'))
    } else if (value < 1 || value > 12) {
        callback(new Error('请输入1-12的整数'))
    } else {
        callback();
    }
};
// 0-12的整数
const countInit012 = (rule, value, callback) => {
    if (value && !(/^([1-9]|10|11|12|0)$/.test(value))) {
        callback(new Error('请输入0-12的整数'))
    } else if (value > 12) {
        callback(new Error('请输入0-12的整数'))
    } else {
        callback();
    }
};
// 0-11的整数
const countInit011 = (rule, value, callback) => {
    if (value && !(/^([1-9]|10|11|0)$/.test(value))) {
        callback(new Error('请输入0-11的整数'))
    } else if (value > 11) {
        callback(new Error('请输入0-11的整数'))
    } else {
        callback();
    }
};
// 20以内的整数
const countInit20 = (rule, value, callback) => {
    if (value && !(/^([1-9]|[1]\d|20)$/.test(value))) {
        callback(new Error('请按照取材部位填写顺序号,如:1,2,3…20'))
    } else if (value < 1 || value > 20) {
        callback(new Error('请按照取材部位填写顺序号,如:1,2,3…20'))
    } else {
        callback();
    }
};
// 身高50-300
const countSG = (rule, value, callback) => {
    if (value && !(/^([5-9]\d{1}|[1-2]\d{2}|300)$/.test(value))) {
        callback(new Error('请输入50-300之间的整数'))
    } else if (value < 50 || value > 300) {
        callback(new Error('请输入50-300之间的整数'))
    } else {
        callback();
    }
};
// 体重20-300
const checkTZ = (rule, value, callback) => {
    if (value && !(/^([2-9]\d{1}|[1-2]\d{2}|300|([2-9]\d{1}|[1-2]\d{2}|300)(\.\d{1}))$/.test(value))) {
        callback(new Error('请输入20-300之间的数字,小数点后一位'))
    } else if (value < 20 || value > 300) {
        callback(new Error('请输入20-300之间的数字,小数点后一位'))
    } else {
        callback();
    }
};
// 腰围40-300
const checkYW = (rule, value, callback) => {
    if (value && !(/^([4-9]\d{1}|[1-3]\d{2}|400)$/.test(value))) {
        callback(new Error('请输入40-400之间的整数'))
    } else if (value < 40 || value > 400) {
        callback(new Error('请输入40-400之间的整数'))
    } else {
        callback();
    }
};
// 12-99
const checkY = (rule, value, callback) => {
    if (value && !(/^([2-9]\d{1}|[1][2-9]{1})$/.test(value))) {
        callback(new Error('请输入12-99之间的整数'))
    } else if (value < 12 || value > 99) {
        callback(new Error('请输入12-99之间的整数'))
    } else {
        callback();
    }
};
// 1-999
const count999 = (rule, value, callback) => {
    if (value && !(/^([1-9]\d{0,2})$/.test(value))) {
        callback(new Error('请输入1-999之间的整数'))
    } else if (value < 1 || value > 999) {
        callback(new Error('请输入1-999之间的整数'))
    } else {
        callback();
    }
};
// 1-99
const count99 = (rule, value, callback) => {
    if (value && !(/^([1-9]\d{0,1})$/.test(value))) {
        callback(new Error('请输入1-99之间的整数'))
    } else if (value < 1 || value > 99) {
        callback(new Error('请输入1-99之间的整数'))
    } else {
        callback();
    }
};
// 0-99
const count099 = (rule, value, callback) => {
    if (value && !(/^([0-9]\d{0,1})$/.test(value))) {
        callback(new Error('请输入0-99之间的整数'))
    } else if (value < 0 || value > 99 || String(value) == '00') {
        callback(new Error('请输入0-99之间的整数'))
    } else {
        callback();
    }
};
// 0.5-99.5激素替代治疗的年数
const count99Float = (rule, value, callback) => {
    if (value && !(/^(([1-9]\d{0,1})((\.[5]){0,1})|0.5)$/.test(value))) {
        callback(new Error('请输入正确的治疗年数(半年填0.5)'))
    } else if (value < 0 || value > 99.5) {
        callback(new Error('请输入正确的治疗年数(半年填0.5)'))
    } else {
        callback();
    }
};

// 0-20000之内的数字,小数点后两位
const countFloatAFP = (rule, value, callback) => {
    if (value && !(/^((0|[1-9]\d{0,4}|[1]\d{0,4}|20000)(\.[0-9]{0,2}){0,1})$/.test(value))) {
        callback(new Error('取值范围0.01-20000.00'))
    } else if (Number(value) > 20000 || Number(value) == 0) {
        callback(new Error('取值范围0.01-20000.00'))
    } else {
        callback();
    }
};
// 机构编码,2位数字校验
const deptCode = (rule, value, callback) => {
    if (value && !(/^(\d{2})$/.test(value))) {
        callback(new Error('请输入2位数字'))
    } else {
        callback();
    }
};
// add 0-50
const add050 = (rule, value, callback) => {
    if (value && !(/^(([1-4]\d|50|[0-9])(\.\d{1,2})|([1-4]\d|[0-9]|50|50.0|50.00))$/.test(value))) {
        callback(new Error('请输入0-50的数字,小数点后两位'))
    } else if (value < 0 || value > 50) {
        callback(new Error('请输入0-50的数字,小数点后两位'))
    } else {
        callback();
    }
}
// add 0-100
const add0100 = (rule, value, callback) => {
    if (String(value) == '100.0' || String(value) == '100.00') {
        callback();
    } else if (value && !(/^(([1-9]\d|[0-9])(\.\d{1,2})|([1-9]\d|[0-9]|100))$/.test(value))) {
        callback(new Error('请输入0-100的数字,小数点后两位'))
    } else if (value < 0 || value > 100) {
        callback(new Error('请输入0-100的数字,小数点后两位'))
    } else {
        callback();
    }
}
// add 0-500
const add0500 = (rule, value, callback) => {
    if (value && !(/^(500.00|500.0|500|([1-4]\d{2}|\d|\d{2})(\.\d+)?)$/.test(value))) {
        callback(new Error('请输入0-500的数字,小数点后两位'))
    } else if (value < 0 || value > 500) {
        callback(new Error('请输入0-500的数字,小数点后两位'))
    } else {
        callback();
    }
}
// add 0-5
const add05 = (rule, value, callback) => {
    if (value && !(/^(5.00|5.0|5|([0-4])(\.\d+)?)$/.test(value))) {
        callback(new Error('请输入0-5的数字,小数点后两位'))
    } else if (value < 0 || value > 5) {
        callback(new Error('请输入0-5的数字,小数点后两位'))
    } else {
        callback();
    }
}
// add 0-20
const add020 = (rule, value, callback) => {
    if (value && !(/^(20.00|20.0|20|([1][0-9]|\d)(\.\d+)?)$/.test(value))) {
        callback(new Error('请输入0-20的数字,小数点后两位'))
    } else if (value < 0 || value > 20) {
        callback(new Error('请输入0-20的数字,小数点后两位'))
    } else {
        callback();
    }
}
// 0<data<=50,小数点后一位
const count50a = (rule, value, callback) => {
    if (value && !(/^(([1-4]\d|50|[0-9])(\.\d{1})|([1-4]\d|[1-9]|50|50.0))$/.test(value))) {
        callback(new Error('请输入0-50的数字,小数点后一位'))
    } else if (value <= 0 || value > 50) {
        callback(new Error('请输入0-50的数字,小数点后一位'))
    } else {
        callback();
    }
}

// 验证纯数字带小数点
export function checkNumber (rule, value, callback) {
    const reg = /^[0-9]+([.]{1}[0-9]+){0,1}$/
    if (!value) {
        return callback(new Error('必填项不能为空'))
    } else if (!reg.test(value)) {
        return callback(new Error('请填写整数或小数'))
    } else {
        callback()
    }
}

//2.验证金额11位,整数最多8位小数两位
export function checkAmount(rule, value, callback) {
    const reg = /^([1-9][\d]{0,7}|0)(\.[\d]{1,2})?$/
    if (!value) {
        return callback(new Error('请填写金额'))
    } else if (!reg.test(value)) {
        return callback(new Error('金额不正确'))
    } else {
        callback()
    }
}

// 身份证
export function checkIdNum(rule, value, callback) {
    const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
    if (!value) {
        return callback(new Error('证件号码不能为空'))
    } else if (!reg.test(value)) {
        return callback(new Error('证件号码不正确'))
    } else {
        callback()
    }
}

// 手机号码
export const validateMobile = (rule, value, callback) => {
    let reg = /^1[0-9]{10}$/
    if (value === '') {
        callback(new Error('请输入手机号码'))
    } else if (!reg.test(value)) {
        callback(new Error('手机号码格式输入不正确'))
    } else {
        callback()
    }
}

// 座机号码
export const validateConsultingPhone = (rule, value, callback) => {
    let reg = /^0\d{2,3}-\d{7,8}(-\d{1,6})?$/
    if (value === '') {
        callback(new Error('必填项不能为空'))
    } else if (!reg.test(value)) {
        callback(new Error('电话格式输入不正确'))
    } else {
        callback()
    }
}

// 过滤空格
export const validateSpace = (value) => {
    return value.replace(/[ ]/g, '')
}

// 验证所在地区
export function validateAreas(rule, value, callback) {
    if (value.length !== 4) {
        return callback(new Error('请选择完整的所在地区'))
    } else {
        callback()
    }
}

// 验证经度
export function validateJingDu(rule, value, callback) {
    const reg = /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,8})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,8}|180)$/
    if (!value) {
        return callback(new Error('请填写经度'))
    } else if (!reg.test(value)) {
        return callback(new Error('经度不正确'))
    } else {
        callback()
    }
}
// 验证纬度
export function validateWeiDu(rule, value, callback) {
    const reg = /^(\-|\+)?([0-8]?\d{1}\.\d{0,9}|90\.0{0,9}|[0-8]?\d{1}|90)$/
    if (!value) {
        return callback(new Error('请填写纬度'))
    } else if (!reg.test(value)) {
        return callback(new Error('纬度不正确'))
    } else {
        callback()
    }
}
// 3位数字或英文或英文与数字组合,其他符号不可输入
const checkLocation = /^[A-Za-z0-9]+$/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

学不会•

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

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

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

打赏作者

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

抵扣说明:

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

余额充值