t-comm
Version:
专业、稳定、纯粹的工具库
129 lines (127 loc) • 3.22 kB
JavaScript
/**
* 判断是否外部资源
* @param {string} path
* @returns {Boolean}
*/
function isExternal(path) {
return /^(https?:|mailto:|tel:)/.test(path);
}
/**
* 判断是否URL
* @param {string} url
* @returns {Boolean}
*/
function validURL(url) {
var 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}
*/
function validLowerCase(str) {
var reg = /^[a-z]+$/;
return reg.test(str);
}
/**
* 判断是否大写
* @param {string} str
* @returns {Boolean}
*/
function validUpperCase(str) {
var reg = /^[A-Z]+$/;
return reg.test(str);
}
/**
* 判断是否字母字符串
* @param {string} str
* @returns {Boolean}
*/
function validAlphabets(str) {
var reg = /^[A-Za-z]+$/;
return reg.test(str);
}
/**
* 判断是否合法邮箱地址
* @param {string} email
* @returns {Boolean}
*/
function validEmail(email) {
// eslint-disable-next-line no-useless-escape
var 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}
*/
function isString(str) {
if (typeof str === 'string' || str instanceof String) {
return true;
}
return false;
}
/**
* 判断是否数组
* @param {Array} arg
* @returns {Boolean}
*/
function isArray(arg) {
if (typeof Array.isArray === 'undefined') {
return Object.prototype.toString.call(arg) === '[object Array]';
}
return Array.isArray(arg);
}
/**
* 判断是否合法的QQ号码
* @param {String} qq 待检测的qq号
*/
function isQQNumber(qq) {
var reQQ = /^[1-9]\d{4,9}$/;
if (!reQQ.test(qq)) {
return false;
}
return true;
}
/**
* 判断是否合法的邮箱号码
* @param {String} email 待检测的邮箱号码
*/
function isEmail(email) {
// @符号前后直接相邻不能为 .
// eslint-disable-next-line no-useless-escape
var reEmail = /^\w+((-\w+)|(\.\w+))*@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
if (!reEmail.test(email)) {
return false;
}
return true;
}
/**
* 判断是否合法的手机号
* @param {String} phone 待检测的手机号
*/
function isMobile(phone) {
// 根据号码段的不同和前缀不同可适当修改
var reValue = /^[1]([3-9])[0-9]{9}$/;
if (!reValue.test(phone)) {
return false;
}
return true;
}
/**
* 判断是否合法的电话号码
* @param {String} tel 待检测的电话号码
*/
function isTel(tel) {
var reValue = /^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/;
if (!reValue.test(tel)) {
return false;
}
return true;
}
function isWindows() {
return /^win/.test(process.platform);
}
export { isArray, isEmail, isExternal, isMobile, isQQNumber, isString, isTel, isWindows, validAlphabets, validEmail, validLowerCase, validURL, validUpperCase };