常用正则表达式积累

常用密码验证

至少8个字符,包含字母和数字

/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/

至少8个字符,包含字母大小写和数字

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/

至少8个字符,包含字母大小写和数字及特殊字符

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*?])[A-Za-z\d!@#$%^&*?]{8,}/

8-20个字符,包含字母大小写和数字及特殊字符

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*?])[A-Za-z\d!@#$%^&*?]{8,20}/
实践

随机生成一个8-15位的字符串,必须包含数字,字母大小写和指定特殊字符(-_#)

/**
 * min: 长度下限
 * max: 长度上限
 */
function randGen(min, max) {
	// 种子集合
	const seed = [
		'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
        'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
        'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
        'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
        'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
        '_', '-', '#'
	];
	// 生成规则
	const genReg = /^(?=.*[A-Za-z])(?=.*\d)(?=.*[-_#])[A-Za-z\d-_#]/;
	// 辅助变量
	let dist = '',  // 目标字符串
		pos = 0,    // 随机位置
		range = Math.round(Math.random() * (max - min)) + min;
	// 不符合规则,继续查找
	while(!genReg.test(dist)) {
		// 重新赋值之前一定要清空,否则将会陷入死循环
		dist = '';
		// 随机生成一个字符串,此时生成的不一定符合规则
		for(let i = 0; i < range; i++) {
			pos = Math.round(Math.random() * (seed.length - 1));
			dist += seed[pos];
		}
	}
	// 符合规则,返回
	return dist;
}
常用文件/文件夹命名验证 / \ : " ? < > | *
/[/\\"<>?*]/gi
8-20个字符仅支持中英文、下划线
/^[a-zA-Z0-9_\u4e00-\u9fa5]{1,30}$/
简易网址验证
// IP类地址需要进一步优化
/^((?:(?:https?|ftp)://|www.))?(-\.)?(?:[\w](?:[\w-]*[\w])?\.\w+[/?#]?)+([^\s/?\.#-]*)+(/[^\s]*)?$/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值