Created
December 10, 2020 10:26
-
-
Save KamaMakh/ab702d06d7503ae7c02a50e776a186e1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* @param {string} path | |
* @returns {Boolean} | |
*/ | |
export function isExternal(path) { | |
return /^(https?:|mailto:|tel:)/.test(path) | |
} | |
/** | |
* @param {string} str | |
* @returns {Boolean} | |
*/ | |
export function validUsername(str) { | |
const valid_map = ['admin', 'editor'] | |
return valid_map.indexOf(str.trim()) >= 0 | |
} | |
/** | |
* @param {string} url | |
* @returns {Boolean} | |
*/ | |
export function 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} | |
*/ | |
export function validLowerCase(str) { | |
const reg = /^[a-z]+$/ | |
return reg.test(str) | |
} | |
/** | |
* @param {string} str | |
* @returns {Boolean} | |
*/ | |
export function validUpperCase(str) { | |
const reg = /^[A-Z]+$/ | |
return reg.test(str) | |
} | |
/** | |
* @param {string} str | |
* @returns {Boolean} | |
*/ | |
export function validAlphabets(str) { | |
const reg = /^[A-Za-z]+$/ | |
return reg.test(str) | |
} | |
/** | |
* @param {string} email | |
* @returns {Boolean} | |
*/ | |
export function 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} | |
*/ | |
export function isString(str) { | |
if (typeof str === 'string' || str instanceof String) { | |
return true | |
} | |
return false | |
} | |
/** | |
* @param {Array} arg | |
* @returns {Boolean} | |
*/ | |
export function isArray(arg) { | |
if (typeof Array.isArray === 'undefined') { | |
return Object.prototype.toString.call(arg) === '[object Array]' | |
} | |
return Array.isArray(arg) | |
} | |
/** | |
* @param {number} value1 | |
* @param {number} value2 | |
* @returns {Boolean} | |
*/ | |
export function sameAs(value1, value2) { | |
return value1 === value2 | |
} | |
/** | |
* @param {string} value | |
* @returns {Boolean} | |
*/ | |
const isNotCyrillic = value => { | |
if (value === undefined || value === null) return false; | |
return !/[а-я]/i.test(value.toLowerCase()); | |
}; | |
/** | |
* @param {string} value | |
* @returns {Boolean} | |
*/ | |
const isHasEnglishLetter = value => { | |
if (value === undefined || value === null) return false; | |
return /[a-z]/i.test(value.toLowerCase()); | |
}; | |
/** | |
* @param {file} value | |
* @param {number} maxSize | |
* @returns {Boolean} | |
*/ | |
const fileMaxSize = (value, maxSize) => { | |
if (value === undefined || value === null) return false; | |
return value.size <= maxSize; | |
}; | |
/** | |
* @param {array} value | |
* @param {number} maxSize | |
* @returns {Boolean} | |
*/ | |
const fileMultipleSize = (value, maxSize) => { | |
if (value === undefined || value === null) return false; | |
let validSize = true; | |
if (value.length) { | |
value.forEach(item => { | |
if (item.size >= maxSize) validSize = false; | |
}); | |
} | |
return validSize; | |
}; | |
/** | |
* @param {array} value | |
* @param {number} maxCount | |
* @returns {Boolean} | |
*/ | |
const fileMaxCount = (value, maxCount) => { | |
if (value === undefined || value === null) return false; | |
return value.length <= maxCount; | |
}; | |
/** | |
* @param {number} value | |
* @returns {Boolean} | |
*/ | |
const positiveNumbers = value => { | |
if (value === undefined || value === null) return false; | |
return parseInt(value) > 0; | |
}; | |
/** | |
* @param {number} value | |
* @returns {Boolean} | |
*/ | |
const naturalCount = value => { | |
if (value === undefined || value === null || value === "") return true; | |
return parseInt(value) >= 0; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment