简单的前端正则校验
1.編寫vertify文件
//金錢校驗(yàn) export const moneyFix = (rule, value, callback) => {const reg = /(^[1-9]\d*(\.\d{1,2})?$)|(^0(\.\d{1,2})?$)/;const reg1 = /0[1-9]$|^[1-9][0-9]?$|^00?\.(?:0[1-9]|[1-9][0-9]?)$|^(?:0[1-9]|[1-9][0-9]?)\.[0-9]/;if (!value) {callback();} else {if (reg.test(value) || reg1.test(value)) {if (isNaN(Number(value))) {return callback(new Error("請(qǐng)輸入正確字符"))}callback();} else {return callback(new Error("價(jià)格輸入不正確,請(qǐng)只保留兩位小數(shù)或檢查是否有特殊字符"));}} };export const moneyFixZero = (rule, value, callback)=> {if (Number(value) < 0.01) {return callback(new Error('金額至少為0.01'))} else {callback()} }; // 0-99.99正則校驗(yàn) export const moneyFixCopy = (rule, value, callback) => {const reg = /(^[1-9]\d*(\.\d{1,2})?$)|(^0(\.\d{1,2})?$)/;const reg1 = /0[1-9]$|^[1-9][0-9]?$|^00?\.(?:0[1-9]|[1-9][0-9]?)$|^(?:0[1-9]|[1-9][0-9]?)\.[0-9]/;const reg2 = /^(\d{1,2})(\.{0}|\.\d{1,2})$/;if (!value) {callback();} else {console.log('打印正則判斷', !Number(value) > 0);if (reg.test(value) || reg1.test(value)) {if (isNaN(Number(value))) {return callback(new Error("請(qǐng)輸入正確字符"))}if (!reg2.test(value) || !Number(value) > 0) {return callback(new Error("請(qǐng)輸入規(guī)定范圍內(nèi)的數(shù)字"))}callback();} else {return callback(new Error("輸入不正確"));}} };export const moneyFixZeroToOne = (rule, value, callback) => {const reg = /^([0-9]{1,2}|100)$/;if (!value) {callback();} else {if (reg.test(value)) {if (isNaN(Number(value))) {return callback(new Error("請(qǐng)輸入正確字符"))}callback();} else {return callback(new Error("輸入不正確"));}} }; //金錢校驗(yàn)可以為空 export const moneyFixNull = (rule, value, callback) => {const reg = /(^[1-9]\d*(\.\d{1,2})?$)|(^0(\.\d{1,2})?$)/;const reg1 = /0[1-9]$|^[1-9][0-9]?$|^00?\.(?:0[1-9]|[1-9][0-9]?)$|^(?:0[1-9]|[1-9][0-9]?)\.[0-9]/;if (value === null || value === undefined || value === "") {callback();} else {if (reg.test(value) || reg1.test(value)) {callback();} else {return callback(new Error("價(jià)格輸入不正確,請(qǐng)只保留兩位小數(shù)或檢查是否有特殊字符"));}} }; //手機(jī)號(hào)碼校驗(yàn) export const checkPhone = (rule, value, callback) => {if (!value) {callback();} else {const reg = /^1[3|4|5|6|7|8|9][0-9]\d{8}$/;if (reg.test(value)) {callback();} else {return callback(new Error("請(qǐng)輸入正確的手機(jī)號(hào)"));}} };// 郵箱地址正則 export const checkMail = (rule, value, callback) => {if (!value) {callback();} else {const reg = new RegExp(/^[A-Za-z0-9_\.\-\u4e00-\u9fa5]+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9_-]+)+$/);if (reg.test(value)) {callback();} else {return callback(new Error("請(qǐng)輸入正確的郵箱地址"));}} };//手機(jī)號(hào)碼和座機(jī)號(hào)碼校驗(yàn) export const checkPhoneAndLandLine = (rule, value, callback) => {if (!value) {callback();} else {const reg = /^1[3456789]\d{9}$/;const reg1 = /^([0-9]{3,4}-)?[0-9]{7,8}$/;if (reg.test(value)) {callback();}if (reg1.test(value)) {callback();}return callback(new Error("請(qǐng)輸入正確的手機(jī)號(hào)或固話"));} };// 表情校驗(yàn) export const testEmoji = (rule, value, callback) => {if (!value) {callback();} else {const reg = /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/;if (reg.test(value)) {return callback(new Error("不支持特殊表情"));} else {callback();}} };// 帶小數(shù)點(diǎn)數(shù)字校驗(yàn) export const checkDotNumber = (rule, value, callback) => {if (!value) {callback();} else {const reg = /^\d+(\.\d+)?$/if (reg.test(value)) {callback();} else {return callback(new Error('輸入必須為數(shù)字值'));}} }// 只能輸入以為小數(shù)校驗(yàn) export const checkOneDotNumber = (rule, value, callback) => {if (!value) {callback();} else {const reg = /^[0-9]+(\56[0-9]{0,1})?$/if (reg.test(value)) {callback();} else {return callback(new Error('輸入必須為數(shù)字值,只能保留一位小數(shù)'));}} }// 只能輸入以為小數(shù)校驗(yàn) export const checkTwoDotNumber = (rule, value, callback) => {if (!value) {callback();} else {const reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/if (reg.test(value)) {callback();} else {return callback(new Error('輸入必須為數(shù)字值,最多兩位小數(shù)'));}} } // 只能輸入以為小數(shù)校驗(yàn) export const checkThreeDotNumber = (rule, value, callback) => {if (!value) {callback();} else {const reg = /((^[1-9][0-9]{0,8})+(.?[0-9]{1,3})?$)|(^[0]+(.[0-9]{1,3})?$)/if (reg.test(value)) {callback();} else {return callback(new Error('輸入必須為數(shù)字值,最多三位小數(shù)'));}} }// 數(shù)字,英文 export const checkNumberAndCharacter = (rule, value, callback) => {if (!value) {callback()} else {const reg = /^[A-Za-z0-9]+$/gif (reg.test(value)) {callback()} else {return callback(new Error('只能包含數(shù)字和字母'));}} }// 數(shù)字,英文,冒號(hào) export const checkNumberAndCharacterAndcolon = (rule, value, callback) => {if (!value) {callback()} else {const reg = /^[A-Za-z0-9:]+$/gif (reg.test(value)) {callback()} else {return callback(new Error('只能包含數(shù)字、字母和英文冒號(hào)'));}} }// 中文,英文,數(shù)字 export const checkNumberAndCharacterAndChinese = (rule, value, callback) => {if (!value) {callback()} else {const reg = /^[\u4E00-\u9FA5A-Za-z0-9]+$/gif (reg.test(value)) {callback()} else {return callback(new Error('只能包含數(shù)字、英文和漢字'));}} }// 數(shù)字 export const checkNumber = (rule, value, callback) => {if (!value) {callback()} else {const reg = /^[0-9]+$/gif (reg.test(value)) {callback()} else {return callback(new Error('只能包含整數(shù)'));}} }//登錄密碼驗(yàn)證 export const checkPassNUll = (rule, value, callback) => {if (!value) {return callback(new Error('請(qǐng)輸入密碼'));} else {const reg = /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$).{6,16}$/;if (reg.test(value)) {callback()} else {return callback(new Error('密碼包含 數(shù)字,英文,字符中的兩種以上,長(zhǎng)度6-16'));}} }2.使用
import { checkNumberAndCharacter, checkNumberAndCharacterAndChinese, checkNumberAndCharacterAndcolon } from '@/utils/vertify' rules: {versionNumber: [{ validator: checkNumberAndCharacterAndcolon, trigger: 'blur' }],},總結(jié)
- 上一篇: kali pinyin拼音输入法
- 下一篇: 常见LED贴膜屏规格尺寸,选择透明贴膜屏