日常开发中,在做一些字符串验证的时候,避免不了和正则打交道,下面做一个日常使用的正则整理
文章目录
验证电子邮箱格式
function isEmail(value: string) {
return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(
value
);
}
验证手机格式
function isMobile(value: string) {
return /^1[23456789]\d{9}$/.test(value);
}
验证 URL 格式
function isUrl(value: string) {
return /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%&=]*)?/.test(value);
}
验证日期格式
function isDate(value: string) {
return return !/Invalid|NaN/.test(new Date(value).toString());
}
验证 ISO 类型的日期格式
function isDateISO(value: string) {
return /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(
value
);
}
验证十进制数字
function isNumber(value: string) {
return /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value);
}
验证整数
function isDigits(value: string) {
return /^\d+$/.test(value);
}
是否有空格
function isSpaces(value: string) {
return /\s+/g.test(value);
}
验证身份证号码
function isIdCard(value: string) {
return /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/.test(
value
);
}
统一社会信用代码
function isUSCC(value: string) {
return /^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/;.test(
value
);
}
金额,只允许 2 位小数
function isAmount(value: string) {
//金额,只允许保留两位小数
return /^[1-9]\d*(,\d{3})*(\.\d{1,2})?$|^0\.\d{1,2}$/.test(value);
}
中文
function isChinese(value: string) {
let reg = /^[\u4e00-\u9fa5]+$/gi;
return reg.test(value);
}
字母
function isLetter(value: string) {
return /^[a-zA-Z]*$/.test(value);
}
字母或者数字
function isEnOrNum(value: string) {
//英文或者数字
let reg = /^[0-9a-zA-Z]*$/g;
return reg.test(value);
}
字母或者数字、下划线
function isEnOrNumOrLine(value: string) {
//英文或者数字
let reg = /^\w+$/;
return reg.test(value);
}
固定电话
function isLandline(value: string) {
let reg = /^\d{3,4}-\d{7,8}(-\d{3,4})?$/;
return reg.test(value);
}
是否短信验证码
function isCode(value: string, len = 6) {
return new RegExp(`^\\d{${len}}$`).test(value);
}
车辆牌照 (普通校验格式)
function isCarCode(value: string, len = 6) {
let reg = /^[\u4E00-\u9FA5][\da-zA-Z]{6}$/;
return reg.test(value);
}
车辆识别码
function isCarNumber(value: string, len = 6) {
let reg = /^(?!(?:\d+|[a-zA-Z]+)$)[\da-zA-Z]{17}$/;
return reg.test(value);
}
Url 是否有参数
function isUrlParam(value: string) {
let reg = /[?&][^?&]+=[^?&]+/g;
return reg.test(value);
}
邮政编码
function isPostalCode(value: string) {
let reg =
/^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/;
return reg.test(value);
}
32 位 MD5 格式
function isMd5(value: string) {
let reg = /^([a-f\d]{32}|[A-F\d]{32})$/;
return reg.test(value);
}
uuid
function isUUID(value: string) {
let reg = /^[a-f\d]{4}(?:[a-f\d]{4}-){4}[a-f\d]{12}$/i;
return reg.test(value);
}
base64
function isBase64(value: string) {
let reg =
/^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)\s*$/i;
return reg.test(value);
}
js 判断是否为空
function isEmpty(value: any) {
switch (typeof value) {
case "undefined":
return true;
case "string":
if (value.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, "").length == 0)
return true;
break;
case "boolean":
if (!value) return true;
break;
case "number":
if (0 === value || isNaN(value)) return true;
break;
case "object":
if (null === value || value.length === 0) return true;
for (var i in value) {
return false;
}
return true;
}
return false;
}
是否 json 字符串
function isJsonString(value: string) {
if (typeof value == "string") {
try {
var obj = JSON.parse(value);
if (typeof obj == "object" && obj) {
return true;
} else {
return false;
}
} catch (e) {
return false;
}
}
return false;
}
有疑问的同学可以私信我、对帮助到同学欢迎大家点赞、收藏评论。