uniapp、vue、小程序常用的一些验证规则校验方法(例如:手机号。身份证、金额等)

慈云数据 2024-04-27 技术支持 39 0

例如: 检查是否为空数组 、是否是空  不为空false 为空true、校验密码、校验手机号格式、校验邮箱格式、校验身份证号格式、校验值长度 不少于6位数、 电话号码加密   15288889999 转化为 152****9999、身份证号码加密、验证输入重量、金额等类型   例如 0.11  2.23  100.123等等 、验证输入的钱    单纯验证金额类型 、验证是否是纯数值 、处理数据 :可把制定相同的key值得对象存储到下级得children中、生成唯一ID、数字转中文  运行结果 : 1 转为 一、图片转为base64、获取随机字符串、授权微信小程序消息推送。

uniapp、vue、小程序常用的一些验证规则校验方法(例如:手机号。身份证、金额等)
(图片来源网络,侵删)

新建utils.js文件

/**
 * 通用的数据处理和验证类 
 
	1、在main.js中配置下列代码
	import Utils from '@/utils/utils.js';
	Vue.prototype.$Utils = Utils;
	
	2、使用方式
	
	let str = "0";
	if(this.$Utils.isNull(str)){
		console.log("str 是空")
	}
 */
export default class Utils {
	/**
	 * 检查是否为空数组 空数组返回 true
	 * @param {Array} arr 数组
	 * @return Boolean
	 */
	static isEmptyArr(arr) {
		if (!Array.isArray(arr)) throw new Error('isEmptyArr 参数不是一个数组');
		if (!arr.length) return true;
		return false;
	}
	/**
	 * 是否是空  不为空false 为空true
	 * @param {any} opt 验证参数
	 * @return Boolean
	 */
	static isNull(opt) {
		if (opt == '' || opt == null || opt == 'null' || opt == undefined) return true;
		return false;
	}
	/**
	 * 校验密码
	 * @param phone
	 * @returns {boolean}
	 */
	static checkPassword(phone) {
		let reg = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'?,./]).{8,}$/;
		return reg.test(phone);
	}
	/**
	 * 校验手机号格式
	 * @param phone
	 * @returns {boolean}
	 */
	static checkPhone(phone) {
		let reg = /^1[3456789]\d{9}$/;
		return reg.test(phone);
	}
	/**
	 * 校验邮箱格式
	 * @param email
	 * @returns {boolean}
	 */
	static checkEmail(email) {
		let reg = /^\w+@[a-z0-9]+\.[a-z]{2,4}$/;
		return reg.test(email);
	}
	/**
	 * 校验身份证号格式
	 * @param email
	 * @returns {boolean}
	 */
	static checkCardNo(email) {
		let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
		return reg.test(email);
	}
	/**
	 * 校验值长度 不少于6位数
	 * @param email
	 * @returns {boolean}
	 */
	static checkValueLength(password, min = 6, max = 0) {
		let regExp = new RegExp(`^[\\s\\S]{${min || ''},${max || ''}}$`);
		return regExp.test(password);
	}
	/**
	 * 电话号码加密   15288889999 转化为 152****9999
	 */
	static phoneEncryption(phone = "") {
		return phone.replace(/^(\d{3})\d{4}(\d+)/, '$1****$2')
	}
	/**
	 * 身份证号码加密
	 */
	static idCardEncryption(idCard) {
		if (!idCard) return ""
		let reg = /^(.{6})(?:\d+)(.{4})$/
		let result = idCard.replace(reg, '\$1******\$2') // 身份证号脱敏,将中间8位替换为“*”
		return result
	}
	/**验证输入重量、金额等类型   例如 0.11  2.23  100.123等等   
	 * @param {Object} value
	 */
	static checkMoney(value, len = 6) {
		let reg = /\d{1,}\.{0,1}\d{0,2}/;
		if (value.replace(reg, '')) {
			value = (value.match(reg) == null ? '' : value.match(reg));
		}
		if ((value >= 1) && (`${value}`.indexOf(0) == 0)) {
			value = parseFloat(value);
		}
		if (`${value}`.indexOf('00') == 0) {
			value = 0;
		}
		let str = parseInt(value).toString();
		if (str.length >= len && (value.toString().indexOf('.')  {
			const parent = data.find((i) => i[key] === item[key]);
			if (parent) {
				parent[name].push({
					...item
				});
			} else {
				let obj = {
					...item
				};
				if (!obj[name]) {
					obj[name] = [];
				}
				obj[name].push({
					...item
				});
				data.push(obj);
			}
		});
		return data;
	}
	// 表单验证   
	static validateForm(key, rules) {
		var check = true
		rules[key].forEach((v) => {
			// 验证失败
			if (!(v.rule).test(this[key])) {
				uni.showToast({
					title: v.msg,
					icon: 'none'
				});
				check = false
				return false
			}
		})
		return check
	};
	// uniapp 获取到上一页的信息,    适用:添加、编辑数据的时候,刷新上一页列表的数据  
	static beforePage(num = 1) {
		// 当前页的数据,
		let pages = getCurrentPages();
		// 上一页的数据
		let prevPage = pages[pages.length - (num + 1)];
		return prevPage.$vm;
	};
	//生成唯一ID  :  根据当前系统时间随机生成一个长字符串
	static getID() {
		const now = new Date()
		const year = now.getFullYear();
		let month = now.getMonth() + 1;
		let day = now.getDate();
		let hour = now.getHours();
		let minutes = now.getMinutes();
		let seconds = now.getSeconds();
		month = month  {
			let strArr = temp.toString().split('').reverse()
			let newNum = ''
			let newArr = []
			strArr.forEach((item, index) => {
				newArr.unshift(item === '0' ? changeNum[item] : changeNum[item] + unit[index])
			})
			let numArr = []
			newArr.forEach((m, n) => {
				if (m !== '零') numArr.push(n)
			})
			if (newArr.length > 1) {
				newArr.forEach((m, n) => {
					if (newArr[newArr.length - 1] === '零') {
						if (n  {
		// #ifdef MP-WEIXIN
		uni.getFileSystemManager().readFile({
			filePath: url, //选择图片返回的相对路径
			encoding: 'base64', //编码格式
			success: res => { //成功的回调
				console.log(res, '返回结果');
				let base64 = 'data:image/jpeg;base64,' + res.data //不加上这串字符,在页面无法显示的哦
				callback && callback(base64)
			},
			fail: (e) => {
				console.log("图片转换失败");
			}
		})
		// #endif
		// #ifdef H5
		uni.request({
			url: url,
			method: 'GET',
			responseType: 'arraybuffer',
			success: res => {
				let base64 = uni.arrayBufferToBase64(res.data); //把arraybuffer转成base64
				base64 = 'data:image/jpeg;base64,' + base64;
				callback && callback(base64)
			},
			fail: (e) => {
				console.log("图片转换失败");
			}
		})
		// #endif
		// #ifdef APP-PLUS
		plus.io.resolveLocalFileSystemURL(url, (entry) => {
			entry.file((file) => {
				let fileReader = new plus.io.FileReader();
				fileReader.onloadend = (e) => {
					callback && callback(e.target.result)
				};
				fileReader.readAsDataURL(file);
			})
		})
		// #endif
	};
	// 获取随机字符串
	static generateRandomString(length = 32) {
		const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
		let result = '';
		for (let i = 0; i  

直接使用方法

	1、在main.js中配置下列代码
	import Utils from '@/utils/utils.js';
	Vue.prototype.$Utils = Utils;
	
	2、使用方式
	
	let str = "0";
	if(this.$Utils.isNull(str)){
		console.log("str 是空")
	}
uniapp、vue、小程序常用的一些验证规则校验方法(例如:手机号。身份证、金额等)
(图片来源网络,侵删)
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon