UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

129 lines (127 loc) 3.22 kB
/** * 判断是否外部资源 * @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 };