qw-utils
Version:
qw Utils package
121 lines (120 loc) • 3.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateUtils = void 0;
class validateUtils {
constructor() { }
/**
* @param {string} path
* @returns {Boolean}
*/
isExternal(path) {
return /^(https?:|mailto:|tel:)/.test(path);
}
/**
* 判断是否为 url
* @param {string} url
* @returns {Boolean}
*/
validURL(url) {
const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/;
return reg.test(url);
}
/**
* 判断是否为全小写字母
* @param {string} str
* @returns {Boolean}
*/
validLowerCase(str) {
const reg = /^[a-z]+$/;
return reg.test(str);
}
/**
* 判断是否为全大写字母
* @param {string} str
* @returns {Boolean}
*/
validUpperCase(str) {
const reg = /^[A-Z]+$/;
return reg.test(str);
}
/**
* 判断是否仅为字母
* @param {string} str
* @returns {Boolean}
*/
validAlphabets(str) {
const reg = /^[A-Za-z]+$/;
return reg.test(str);
}
/**
* 判断是否为正确邮箱格式
* @param {string} email
* @returns {Boolean}
*/
validEmail(email) {
const reg = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return reg.test(email);
}
/**
* 判断是否为字符串类型
* @param {string} str
* @returns {Boolean}
*/
isString(str) {
return typeof str === 'string' || new String(str) instanceof String;
}
/**
* 判断是否为数组类型
* @param {Array} arg
* @returns {Boolean}
*/
isArray(arg) {
if (typeof Array.isArray === 'undefined') {
return Object.prototype.toString.call(arg) === '[object Array]';
}
return Array.isArray(arg);
}
/**
* 是否为身份证号码
*/
isIdCard(value) {
const reg = /^[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)$/;
return reg.test(value);
}
/**
* 是否为中文
*/
isChinese(value) {
const reg = /^[\u4e00-\u9fa5]+$/gi;
return reg.test(value);
}
/**
* 是否为字母
*/
isLetter(value) {
const reg = /^[a-zA-Z]*$/;
return reg.test(value);
}
/**
* 是否为字母或者数字
*/
isEnOrNum(value) {
const reg = /^[0-9a-zA-Z]*$/g;
return reg.test(value);
}
/**
* 是否图片格式
*/
isImage(value) {
const reg = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i;
return reg.test(value.split('?')[0]);
}
/**
* 是否视频格式
*/
isVideo(value) {
const reg = /\.(mp4|mpg|mpeg|dat|asf|avi|rm|rmvb|mov|wmv|flv|mkv|m3u8)/i;
return reg.test(value.split('?')[0]);
}
}
exports.validateUtils = validateUtils;