mstf-kit
Version:
一个现代化的 JavaScript/TypeScript 工具库,提供了丰富的常用工具函数
55 lines (54 loc) • 1.46 kB
JavaScript
function isEmail(email) {
const pattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
return pattern.test(email);
}
function isChinesePhone(phone) {
const pattern = /^1[3-9]\d{9}$/;
return pattern.test(phone);
}
function isChineseIdCard(idCard) {
const pattern = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
return pattern.test(idCard);
}
function isUrl(url) {
try {
new URL(url);
return true;
} catch (e) {
return false;
}
}
function isIPv4(ip) {
const pattern = /^(\d{1,3}\.){3}\d{1,3}$/;
if (!pattern.test(ip)) return false;
return ip.split(".").every((num) => {
const n = parseInt(num, 10);
return n >= 0 && n <= 255;
});
}
function validatePassword(password, options = {}) {
const {
minLength = 8,
requireSpecialChar = true,
requireNumber = true,
requireUppercase = true
} = options;
if (password.length < minLength) return false;
if (requireSpecialChar && !/[!@#$%^&*(),.?":{}|<>]/.test(password)) return false;
if (requireNumber && !/\d/.test(password)) return false;
if (requireUppercase && !/[A-Z]/.test(password)) return false;
return true;
}
function isSafeString(str) {
const pattern = /<[^>]*>|javascript:|data:|vbscript:|expression\(|document\.|window\.|eval\(|setTimeout\(|setInterval\(|alert\(|confirm\(|prompt\(/i;
return !pattern.test(str);
}
export {
isChineseIdCard,
isChinesePhone,
isEmail,
isIPv4,
isSafeString,
isUrl,
validatePassword
};