/**
* 邮箱
* @param {*} s
*/
export function isEmail (s) {
return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
}
/**
* 手机号码
* @param {*} s
*/
export function isMobile (s) {
return /^1[0-9]{10}$/.test(s)
}
/**
* 电话号码
* @param {*} s
*/
export function isPhone (s) {
return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
}
/**
* URL地址
* @param {*} s
*/
export function isURL (s) {
return /^http[s]?:\/\/.*/.test(s)
}
/**
* 数字(包含小数)校验
*/
export function checkNumber(value,sumLen,pointLen, callback) {
let reg = /^(((0(\.\d+)?))|([1-9]\d*(\.\d+)?))$/
let msg = ''
if(pointLen === 0){
msg = '请输入最多'+ (sumLen-pointLen) + '位整数'
} else {
msg = '请输入最多'+ (sumLen-pointLen) + '位整数, ' + pointLen + '位小数的数字'
}
if(value == null || value.toString().trim() == ''){
callback()
} else if (isNaN(value)) {
callback(new Error('请输入数字'))
} else if (!reg.test(value)) {
callback(new Error('请输入合法的数字'))
} else if(value.toString().indexOf(".") >= 0) {
let numArr = value.toString().split('.')
if(numArr[0].length > sumLen-pointLen ) {
callback(new Error(msg))
} else if(numArr[1].length > pointLen) {
callback(new Error(msg))
} else {
callback()
}
} else if(value.toString().indexOf(".") < 0 && value.toString().length > sumLen-pointLen) {
callback(new Error(msg))
}else {
callback()
}
}
/**
* 正负数(包含小数)校验
* @param value
* @param sumLun
* @param pointLen
* @param callback
*/
export function checkNumberNegative(value,sumLen,pointLen,callback){
let reg = /(^[\-0-9][0-9]*(.[0-9]+)?)$/
if(value == null || value.toString().trim() == ''){
callback()
} else if (isNaN(value)) {
callback(new Error('请输入数字'))
} else if (!reg.test(value)) {
callback(new Error('请输入合法的数字'))
} else if(value.toString().indexOf(".") >= 0) {
let numArr = value.toString().split('.')
if(numArr[0].length > sumLen-pointLen ) {
callback(new Error('请输入最多'+ (sumLen-pointLen) + '位整数, ' + pointLen + '位小数的数字'))
} else if(numArr[1].length > pointLen) {
callback(new Error('请输入最多'+ (sumLen-pointLen) + '位整数, ' + pointLen + '位小数的数字'))
} else {
callback()
}
} else if(value.toString().indexOf(".") < 0 && value.toString().length > sumLen-pointLen) {
callback(new Error('请输入最多'+ (sumLen-pointLen) + '位整数, ' + pointLen + '位小数的数字'))
}else {
callback()
}
}
/**
* 百分比数字校验(包含负数)
*/
export function checkNumberPercent(rule,value,callback) {
let reg = /(^([+-]?)[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^([+-]?)(0){1}$)|(^([+-]?)[0-9]\.[0-9]([0-9])?$)/
if(value == null || value.toString().trim() == ''){
callback()
} else if (isNaN(value)) {
callback(new Error('请输入最多2位小数的数字'))
} else if (!reg.test(value)) {
callback(new Error('请输入最多2位小数的数字'))
} else if (Number(value) > 100 || Number(value) < -100){
callback(new Error('请输入正负100之间的数字'))
}else {
callback()
}
}
/**
* 百分比数字校验(不包含负数)
*/
export function checkPercent(rule,value,callback) {
let reg = /^[0-9]+([.]{1}[0-9]{1,2})?$/
if(value == null || value.toString().trim() == ''){
callback()
} else if (isNaN(value)) {
callback(new Error('请输入最多2位小数的数字'))
} else if (!reg.test(value)) {
callback(new Error('请输入最多2位小数的数字'))
} else if (Number(value) > 100){
callback(new Error('请输入小于100的数字'))
}else {
callback()
}
}
/**
* 校验正整数和0
*/
export function checkPositiveIntegers(rule,value,callback) {
let reg = /^(0|\+?[1-9][0-9]*)$/
if(value == null || value.toString().trim() == ''){
callback()
} else if (isNaN(value)) {
callback(new Error('请输入数字'))
} else if (!reg.test(value)) {
callback(new Error('请输入合法的非负整数'))
} else {
callback()
}
}