js 字符串工具 常用正则 form自定义校验

  • reg-validator.js
/**
 * 是否为空
 */
export function isEmpty(str) {
	if (str == null || str == undefined) {
		return true;
	}
	str = str.toString().replace(" ", "");
	if (str.length == 0 || str == "") {
		return true;
	}

	return false;
}

/**
 * 是否不为空
 */
export function isNotEmpty(str) {
	return !isEmpty();
}

/**
 * 是否为数字  整数,浮点数
 */
export function isNum(str) {
	return !isNaN(num);
}

/**
 * 是否为ip地址
 */
export function isIP(str) {
	const reg =
		/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
	return reg.test(str);
}

/**
 * 是否身份证号码
 */
export function isIdCard(str) {
	const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
	return reg.test(str);
}

/**
 * 是否邮箱
 */
export function isEmail(str) {
	const reg = /^([a-zA-Z0-9]+[-_\.]?)+@[a-zA-Z0-9]+\.[a-z]+$/;
	return reg.test(str);
}

/**
 * 整数填写
 */
export function isInteger(str) {
	const reg = /^-?[1-9]\d*$/;
	return reg.test(str);
}

/**
 * 正整数填写
 */
export function isPositiveInteger(str) {
	const reg = /^[1-9]\d*$/;
	return reg.test(str);
}

/**
 * 是否为小数
 */
export function isDecimal(str) {
	let reg = /^[-\+]?\d+(\.\d+)?$/;
	return reg.test(str);
}

/**
 * 小写字母
 */
export function isLowercase(str) {
	const reg = /^[a-z]+$/;
	return reg.test(str);
}

/**
 * 大写字母
 */
export function isUppercase(str) {
	const reg = /^[A-Z]+$/;
	return reg.test(str);
}

/**
 * 大小写混合
 */
export function isLetters(str) {
	const reg = /^[A-Za-z]+$/;
	return reg.test(str);
}

/**
 * 数字加英文,不包含特殊字符
 */
export function isNumLetters(str) {
	const reg = /^[a-zA-Z0-9]+$/;
	return reg.test(str);
}

/**
 * 密码校验(6-20位英文字母、数字或者符号(除空格),且字母、数字和标点符号至少包含两种)
 */
export function isPassword(str) {
	const reg = /^(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$)([^\u4e00-\u9fa5\s]){6,20}$/;
	return reg.test(str);
}

/**
 * 密码强度的校验  最少6位,最多30位, 包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
 */
export function isPassword2(str) {
	let reg = /^.*(?=.{6,30})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;
	return reg.test(str);
}

/**
 * 中文校验
 */
export function isChinese(str) {
	const reg = /^[\u0391-\uFFE5A-Za-z]+$/;
	return reg.test(str);
}

/**
 * 是否手机号码或者固话
 */
export function isPhoneNumber(str) {
	const reg = /^((0\d{2,3}-\d{7,8})|(1[34578]\d{9}))$/;
	return reg.test(str);
}

/**
 * 是否传真号码
 */
export function isFax(str) {
	const reg = /^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/;
	return reg.test(str);
}

/**
 * 统一社会信用代码校验
 */
export function isSocialCode(str) {
	const reg =  /^([0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}|[1-9]\d{14})$/;
	return reg.test(str);
}

/**
 * URL的校验
 */
export function isURL(str) {
	const reg = /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
	return reg.test(str);
}

/**
 * 日期格式校验 YYYY-MM-DD
 */
export function isYymmdd(str) {
	let reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
	// '2021-10-10' 为  true
	return reg.test(str);
}

/**
 * 日期格式校验 YYYY-MM-DD hh:mm:ss
 */
export function isYymmddhhmmss(str) {
	let reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
	// '2021-10-10 16:16:16' 为  true
	return reg.test(str);
}

/**
 * 微信号的校验  6至20位,以字母开头,字母,数字,减号,下划线
 */
export function isWechat(str) {
	let reg = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;
	return reg.test(str);
}

/**
 * 用户名校验 4到16位(字母,数字,下划线,减号)
 */
export function isUsername(str) {
	let reg = /^[a-zA-Z0-9_-]{4,16}$/;
	return reg.test(str);
}

/**
 * 车牌号校验
 */
export function isCarNo(str) {
	let reg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;
	return reg.test(str);
}

/**
 * 护照(包括香港和澳门)
 */
export function isPassport(str) {
	let reg = /(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/;

	return reg.test(str);
}

/**
 * 港澳通行证
 */
export function isHKPassport(str) {
	let reg = /^[HMhm]{1}([0-9]{10}|[0-9]{8})$/;

	return reg.test(str);
}

/**
 * 台湾通行证
 */
export function isTWPassport(str) {
	let reg = /^\\d{8}|^[a-zA-Z0-9]{10}|^\\d{18}$/;
	return reg.test(str);
}

  • form-validator.js
import { isIP } from "./reg-validator";

// 是否为ip
export function isIPValidator(rule, value, callback) {
	if (!value) {
		return callback(new Error("IP地址不能为空"));
	}

	setTimeout(() => {
		if (!isIP(value)) {
			callback(new Error("请输入正确的IP地址"));
		} else {
			callback();
		}
	}, 200);
}

  • 使用
import { isIPValidator } from "./form-validator.js";
export default {
	data() {
		return {
			form: {},
			rules: {
				name: [{ validator: isIPValidator, trigger: "blur" }],
			},
		};
	},
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zsd_666

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

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

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

打赏作者

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

抵扣说明:

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

余额充值