/** * 判断是否为空 * @param val 待判断值 * @returns 是否合法 */ export const isRequired = (val: string): boolean => { return val !== '' } // /** * 判断是否为整数 * @param value * @returns 是否合法 */ export const isInteger = (value: any) => { return Number.isInteger(Number(value)) } /** * 判断是否为ip * @param ip 待判断 * @returns 是否合法 */ export const isIp = (ip: string): boolean => { var rep = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/ return rep.test(ip) } /** * 判断端口是否合法 * @param port 待判断端口 * @returns 是否合法 */ export const isPort = (port: number | string): boolean => { if (!isInteger(port) || port > 65535 || port < 1) { return false } return true } // /** * 判断整数范围 * @param value 待判断数值 * @param max 最大值 * @param min 最小值 * @returns 是否符合数值范围 */ export const isInRange = (value: number, max = 20, min = -10): boolean => { if (!isInteger(value) || value > max || min < -10) { return false } return true } /** * 验证小写字母 * @param str * @returns */ export function validateLowerCase(str: string) { const reg = /^[a-z]+$/ return reg.test(str) } /* 验证大写字母 */ export function validateUpperCase(str: string) { const reg = /^[A-Z]+$/ return reg.test(str) } /* 验证大小写字母 */ export function validateAlphabets(str: string) { const reg = /^[A-Za-z]+$/ return reg.test(str) } /** * 验证邮箱 * @param email * @returns {boolean} */ export function validateEmail(email: string) { const re = /^(([^<>()\[\]\\.,;:\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 re.test(email) } /** * 验证手机号 * @param phone * @returns {boolean} */ export function validateMobile(phone: string) { const re = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/ return re.test(phone) } /** * 校验身份证号 * @param value * @returns */ export function validateIdCardNo(value: string) { const re = /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/ return re.test(value) } /** * * @param value 验证电话号码 * @returns */ export function validatePhone(value: string) { const re = /(\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$/ return re.test(value) } /** * 强类型密码验证 */ export function validatePasswordStrong(value: string) { const re = /^(?![0-9]+$)(?![a-zA-Z]+$)(?![0-9a-zA-Z]+$)(?![0-9\\W]+$)(?![a-zA-Z\\W]+$)[0-9A-Za-z\\W]{6,18}$/ return re.test(value) } /** * 弱类型密码验证 */ export function validatePasswordWeak(value: string) { const re = /[0-9A-Za-z\\W]{6,18}$/ return re.test(value) } // 提取url params参数 export function queryString(str: string) { const params = str.split('?')[1] // 截取?号后的字符串即name=itclanCoder&study=css const param = params.split('&') // 通过&符号进行分割即["name=itclanCoder", "study=css"] const obj: { [key: string]: string } = {} // 用一个对象存储目标值 for (let i = 0; i < param.length; i++) { // 循环遍历截取出来的param数组 const paramsA = param[i].split('=') // 通过split,=继续对数组params每一项进行分割,生成数组["name", "itclanCoder"] const key = paramsA[0] // 取数组项["name", "itclanCoder"]中第0位,即name const value = paramsA[1] // 取数组项["name", "itclanCoder"]中第1位,即itclanCoder obj[key] = value } return obj } // 去除字符串中的特殊符号 export function stripscript(s: string) { var pattern = /[[\]\/:*?"<>|#]/ var rs = '' for (var i = 0; i < s.length; i++) { rs = rs + s.substr(i, 1).replace(pattern, '') } return rs }