Skip to content
On this page

Regex 常用正则

整理一些常用的正则,后续会陆续添加。

js
export const regex = {
	// 数字
	numberRe: /^((-?\d+\.\d+)|(-?\d+)|(-?\.\d+))$/,

	// 小数
	decimalFractionRe: /^(([^0][0-9]+|0)\.([0-9]{1,2}))$/,

	// 身份证
	cardRe: /(^\d{15}$)|(^\d{17}([0-9]|X)$)/i,

	// 手机号
	phoneRe: /^[1]([3-9])[0-9]{9}$/,
	phoneReStrict:
		/^[1](([3][0-9])|([4][5-9])|([5][0-3,5-9])|([6][5,6])|([7][0-8])|([8][0-9])|([9][1,8,9]))[0-9]{8}$/,

	// url地址
	adressRe:
		/(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/,

	// email
	emailRe:
		/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,

	// 非零开头的最多带两位小数的数字
	twoDecimalPlacesRe: /^([1-9][0-9]*)+(.[0-9]{1,2})?$/,

	// 中文、英文、数字包括下划线
	languageNumberRe: /^[\u4E00-\u9FA5A-Za-z0-9_]+$/,

	// 中文、英文、数字但不包括下划线等符号
	noLanguageNumberRe: /^[\u4E00-\u9FA5A-Za-z0-9]+$/,

	// 英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
	figuresNumberRe: /^[A-Za-z0-9]+$/,

	// 域名
	domainRe: /^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/,

	// 国内电话号码
	teplphoneRe: /^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/,

	// 短身份证号码(数字、字母x结尾):^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$
	shortIdCardRe: /^([0-9]){7,18}(x|X)?$/,
	longIdCardRe: /^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$/,

	// 强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间)
	pwdStrengthRe: /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$/,

	// 帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线)
	legalityCountRe: /^[a-zA-Z][a-zA-Z0-9_]{4,15}$/,

	// 特殊字符
	specialCharacterRe:
		/[^`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]/im,

	// 中国邮政编码为6位数字
	postalCodeRe: /[1-9]\d{5}(?!\d)/,

	// 长度为3-20的所有字符
	allCharacterRe: /^.{3,20}$/,

	// m-n位的数字
	digitsNumberRe: /^\d{5,18}$/,

	// 为汉字
	chineseRe: /^[\u4e00-\u9fa5]{0,}$/,

	// 由26个英文字母组成的字符串
	alphabetRe: /^[A-Za-z]+$/,

	// 腾讯QQ号
	tencentNumberRe: /^[1-9]\d{4,10}$/,

	// 验证数字大小在15到200之间
	sizeNumberRe: /^1[6-9]$|^[2-9]\d$|^1\d{2}$/,

	// IP地址
	ipRe: /^((([1-9]\d?)|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}(([1-9]\d?)|(1\d{2})|(2[0-4]\d)|(25[0-5]))$/,

	// 网址
	webRe: /^(?=^.{3,255}$)(http(s)?:\/\/)?(www\.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:\d+)*(\/\w+\.\w+)*$/
}