说明:基本的一些用户输入的校验,例如校验密码由6-18位数字和英文组成,判断是否是手机号,判断是否是身份证号,判断是否是邮箱,判断是否中文等待。防抖,节流。文章来源:https://www.toymoban.com/news/detail-626199.html
创建文件夹 validate.js文章来源地址https://www.toymoban.com/news/detail-626199.html
/**
* @description 判读是否为外链
* @param path
* @returns {boolean}
*/
export function isExternal(path) {
return /^(https?:|mailto:|tel:)/.test(path)
}
/**
* @description 校验密码由6-18位数字和英文组成
* @param str
* @returns {boolean}
*/
export function isPassword(str) {
let reg = /^[a-zA-Z0-9]{6,18}$/
return reg.test(str)
}
/**
*
* @description 判断是否为正整数包括0
* @param value
* @returns {boolean}
*/
export function isNumber(value) {
const reg = /^(0|[1-9][0-9]*)$/
return reg.test(value)
}
/**
* @description 判断是否是名称
* @param value
* @returns {boolean}
*/
export function isName(value) {
const reg = /^[\u4e00-\u9fa5a-zA-Z0-9]+$/
return reg.test(value)
}
/**
* @description 判断是否是字符串
* @param str
* @returns {boolean}
*/
export function isString(str) {
return typeof str === 'string' || str instanceof String
}
/**
* @description 判断是否是数组
* @param arg
* @returns {arg is any[]|boolean}
*/
export function isArray(arg) {
if (typeof Array.isArray === 'undefined') {
return Object.prototype.toString.call(arg) === '[object Array]'
}
return Array.isArray(arg)
}
/**
* @description 判断是否是手机号
* @param str
* @returns {boolean}
*/
export function isPhone(str) {
const reg = /^1\d{10}$/
return reg.test(str)
}
/**
* @description 判断是否是身份证号(第二代)
* @param str
* @returns {boolean}
*/
export function isIdCard(str) {
const reg = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
return reg.test(str)
}
/**
* @description 判断是否是邮箱
* @param str
* @returns {boolean}
*/
export function isEmail(str) {
const reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
return reg.test(str)
}
/**
* @description 判断是否是邮编
* @param str
* @returns {boolean}
*/
export function isPost(str) {
const reg = /^[1-9][0-9]{5}$/
return reg.test(str)
}
/**
* @description 判断是否中文
* @param str
* @returns {boolean}
*/
export function isChina(str) {
const reg = /^[\u4E00-\u9FA5]{2,4}$/
return reg.test(str)
}
/**
* @description 判断是否为固话或手机
* @param str
* @returns {boolean}
*/
export function isTelOrMobile(str) {
const reg = /^((0\d{2,3}-\d{7,8})|(1[3456789]\d{9}))$/
return reg.test(str)
}
/**
* @description 判断是否为数字且最多两位小数
* @param str
* @returns {boolean}
*/
export function isNum(str) {
const reg = /^\d+(\.\d{1,2})?$/
return reg.test(str)
}
/**
* @description 判断是否数字字母组合统一社会信用代码
* @param str
* @returns {boolean}
*/
export function isCompanyCode(str) {
const reg = /^[0-9a-zA-Z]*$/g
return reg.test(str)
}
/**
* @description 判断是否为网址
* @param str
* @returns {boolean}
*/
export function isWebsiteURL(str) {
const reg = /^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\*\+,;=.]+$/
return reg.test(str)
}
/**
* @description 金额判断 大于0的数字 保留两位小数
* @param str
* @returns {boolean}
*/
export function isAmount(str) {
const reg = /^(([1-9]{1}\d*)|(0{1}))(\.\d{1,2})?$/
return reg.test(str)
}
/**
* @description 费率 为数字0-100,最多保留两位小数
* @param str
* @returns {boolean}
*/
export function isRate(str) {
// 0 - 100
const reg = /^(((\d|[1-9]\d)(\.\d{1,2})?))$/
return reg.test(str)
}
/*
* 防抖
* fn [function] 需要防抖的函数
* delay [number] 毫秒,防抖期限值
* eg. getCouponMethod: debounce(function() {}, 1000)
*/
export const debounce = (fn, delay) => {
let timer = null //借助闭包
return function () {
let that = this
let args = arguments
if (timer) {
clearTimeout(timer) //进入该分支语句,说明当前正在一个计时过程中,并且又触发了相同事件。所以要取消当前的计时,重新开始计时
}
timer = setTimeout(function () {
fn.apply(that, args)
}, delay) // 进入该分支说明当前并没有在计时,那么就开始一个计时
}
}
/*
* 节流
* fn [function] 需要节流的函数
* delay [number] 毫秒,节流期限值
* eg. getCouponMethod: debounce(function() {}, 1000)
*/
export const throttle = (fn, delay) => {
let valid = true
return function () {
let that = this
let args = arguments
if (!valid) {
//休息时间 暂不接客
return false
}
// 工作时间,执行函数并且在间隔期内把状态位设为无效
valid = false
setTimeout(() => {
fn.apply(that, args)
valid = true
}, delay)
}
}
到了这里,关于前端工具库之-公共校验文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!