x-js-utils
Version:
274 lines (273 loc) • 7.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isAudioByExtName = exports.isVideoByExtName = exports.isImageByExtName = exports.isObject = exports.isArray = exports.isJsonString = exports.isLandline = exports.isRangeLength = exports.isRange = exports.isContains = exports.isEnOrNum = exports.isLetter = exports.isChinese = exports.isAmount = exports.isCarNo = exports.isIdCard = exports.isInteger = exports.isNumber = exports.isDateISO = exports.isDate = exports.isUrl = exports.isMobile = exports.isEmail = void 0;
var date_1 = require("../date");
/**
* 验证邮箱
*
* @param value
* @returns
*/
var isEmail = function (value) {
return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(value);
};
exports.isEmail = isEmail;
/**
* 验证手机格式
*
* @param value
* @returns
*/
var isMobile = function (value) {
return /^1[23456789]\d{9}$/.test(value);
};
exports.isMobile = isMobile;
/**
* 验证url格式
*
* @param value
* @returns
*/
var isUrl = function (value) {
return /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%&=]*)?/.test(value);
};
exports.isUrl = isUrl;
/**
* 验证时间格式
*
* @param value
* @returns
*/
var isDate = function (value) {
return !/Invalid|NaN/.test(new Date(date_1.default.dateFormat(value)).toString());
};
exports.isDate = isDate;
/**
* 验证ISO类型的日期格式
*
* @param value
* @returns
*/
var isDateISO = function (value) {
return !/Invalid|NaN/.test(new Date(date_1.default.dateFormat(value)).toString());
};
exports.isDateISO = isDateISO;
/**
* 验证十进制数字
*
* @param value
* @returns
*/
var isNumber = function (value) {
return /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value);
};
exports.isNumber = isNumber;
/**
* 验证整数
*
* @param value
* @returns
*/
var isInteger = function (value) {
return /^\d+$/.test(value);
};
exports.isInteger = isInteger;
/**
* 验证身份证
*
* @param value
* @returns
*/
var isIdCard = function (value) {
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);
};
exports.isIdCard = isIdCard;
/**
* 验证车牌号
*
* @param value
* @returns
*/
var isCarNo = function (value) {
// 新能源车牌
var new_reg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/;
// 旧车牌
var old_reg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
if (value.length === 7) {
return old_reg.test(value);
}
else if (value.length === 8) {
return new_reg.test(value);
}
else {
return false;
}
};
exports.isCarNo = isCarNo;
/**
* 金额,只允许2位小数
*
* @param value
* @returns
*/
var isAmount = function (value) {
return /^[1-9]\d*(,\d{3})*(\.\d{1,2})?$|^0\.\d{1,2}$/.test(value);
};
exports.isAmount = isAmount;
/**
* 中文
*
* @param value
* @returns
*/
var isChinese = function (value) {
var reg = /^[\u4e00-\u9fa5]+$/gi;
return reg.test(value);
};
exports.isChinese = isChinese;
/**
* 只能输入字母
*
* @param value
* @returns
*/
var isLetter = function (value) {
return /^[a-zA-Z]*$/.test(value);
};
exports.isLetter = isLetter;
/**
* 只能是字母或者数字
*
* @param value
* @returns
*/
var isEnOrNum = function (value) {
//英文或者数字
var reg = /^[0-9a-zA-Z]*$/g;
return reg.test(value);
};
exports.isEnOrNum = isEnOrNum;
/**
* 验证是否包含某个值
*
* @param value
* @param params
*/
var isContains = function (value, params) {
return value.indexOf(params) >= 0;
};
exports.isContains = isContains;
/**
* 验证一个值范围[min, max]
*
* @param value
* @param params
*/
var isRange = function (value, params) {
return value >= params[0] && value <= params[1];
};
exports.isRange = isRange;
/**
* 验证一个长度范围[min, max]
*
* @param value
* @param params
*/
var isRangeLength = function (value, params) {
return value.length >= params[0] && value.length <= params[1];
};
exports.isRangeLength = isRangeLength;
/**
* 是否固定电话
*
* @param value
* @returns
*/
var isLandline = function (value) {
var reg = /^\d{3,4}-\d{7,8}(-\d{3,4})?$/;
return reg.test(value);
};
exports.isLandline = isLandline;
/**
* 验证json字符串
*
* @param value
* @param basics 是否验证基础类型,如"123"
* @returns
*/
var isJsonString = function (value, basics) {
if (basics === void 0) { basics = true; }
if (typeof value == 'string') {
try {
var obj = JSON.parse(value);
if (basics)
return true;
if (typeof obj == 'object' && obj) {
return true;
}
else {
return false;
}
}
catch (e) {
return false;
}
}
return false;
};
exports.isJsonString = isJsonString;
/**
* 验证数组
*
* @param value
* @returns
*/
var isArray = function (value) {
if (typeof Array.isArray === "function") {
return Array.isArray(value);
}
else {
return Object.prototype.toString.call(value) === "[object Array]";
}
};
exports.isArray = isArray;
/**
* 验证对象
*
* @param value
* @returns
*/
var isObject = function (value) {
return Object.prototype.toString.call(value) === '[object Object]';
};
exports.isObject = isObject;
// 根据后缀名判断文件是否是图片
var isImageByExtName = function (file_name) {
// 图片的后缀名
var imgExt = [".png", ".jpg", ".jpeg", ".bmp", ".gif"];
// 将名称转成小写字符
var name = file_name.toLowerCase();
// 判断是否以图片后缀名结尾
return imgExt.some(function (item) { return name.endsWith(item); });
};
exports.isImageByExtName = isImageByExtName;
// 根据后缀名判断文件是否是视频格式
var isVideoByExtName = function (file_name) {
// 视频的后缀名
var videoExt = [".wmv", ".asf", ".asx", ".rm", ".rmvb", "mp4", "3gp", "mov", "m4v", "avi", "dat", "mkv", "flv", "vob"];
// 将名称转成小写字符
var name = file_name.toLowerCase();
// 判断是否以图片后缀名结尾
return videoExt.some(function (item) { return name.endsWith(item); });
};
exports.isVideoByExtName = isVideoByExtName;
// 根据后缀名判断文件是否是音频格式
var isAudioByExtName = function (file_name) {
// 音频的后缀名
var videoExt = [".wav", ".flac", ".ape", ".alac", ".wavpack", "wv", "mp3", "aac", "ogg", "opus"];
// 将名称转成小写字符
var name = file_name.toLowerCase();
// 判断是否以图片后缀名结尾
return videoExt.some(function (item) { return name.endsWith(item); });
};
exports.isAudioByExtName = isAudioByExtName;