/* eslint-disable */
|
|
export function isExternal(path) {
|
return /^(https?:|mailto:|tel:)/.test(path)
|
}
|
|
export function validUsername(str) {
|
const validMap = ['admin', 'editor']
|
return validMap.indexOf(str.trim()) >= 0
|
}
|
|
/* 合法uri */
|
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)
|
}
|
|
/* 小写字母 */
|
export function validLowerCase(str) {
|
const reg = /^[a-z]+$/
|
return reg.test(str)
|
}
|
|
/* 大写字母 */
|
export function validUpperCase(str) {
|
const reg = /^[A-Z]+$/
|
return reg.test(str)
|
}
|
|
/* 大小写字母 */
|
export function validAlphabets(str) {
|
const reg = /^[A-Za-z]+$/
|
return reg.test(str)
|
}
|
|
/**
|
* validate email
|
* @param email
|
* @returns {boolean}
|
*/
|
export function validEmail(rule, value, callback) {
|
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,}))$/
|
if (re.test(value)) {
|
return callback()
|
}
|
return callback(new Error('输入的邮箱错误'))
|
}
|
|
export function isPhone(rule, value, callback) {
|
if (!value) {
|
return callback(new Error('输入不可以为空'));
|
}
|
var pattern = /^1[345789]\d{9}$/
|
if (pattern.test(value)) {
|
return callback()
|
}
|
return callback(new Error('输入的手机号错误'))
|
}
|
|
export function isIDCard(rule, idcode, callback) {
|
if (idcode==""||idcode===undefined) {
|
return callback()
|
}
|
var weight_factor = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
|
var check_code = ['1', '0', 'X' , '9', '8', '7', '6', '5', '4', '3', '2'];
|
|
var code = idcode + "";
|
var last = idcode[17];//最后一位
|
|
var seventeen = code.substring(0,17);
|
|
var arr = seventeen.split("");
|
var len = arr.length;
|
var num = 0;
|
for(var i = 0; i < len; i++){
|
num = num + +arr[i] * weight_factor[i];
|
}
|
|
var resisue = num%11;
|
var last_no = check_code[resisue];
|
|
var idcard_patter = /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/;
|
|
var format = idcard_patter.test(idcode);
|
return last === last_no && format ? callback() : callback(new Error('身份证号格式错误'));
|
}
|
|
export function isIPv4(rule, value, callback) {
|
if (!value) {
|
return callback(new Error('输入不可以为空'));
|
}
|
|
const re = /^(\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])$/
|
if (re.test(value)) {
|
return callback()
|
}
|
return callback(new Error('请输入正确的IP地址'))
|
}
|
|
export function isPort(rule, value, callback) {
|
if (!value) {
|
return callback(new Error('输入不可以为空'));
|
}
|
setTimeout(() => {
|
if (value == '' || typeof (value) == undefined) {
|
callback(new Error('请输入端口值'));
|
} else {
|
const re = /^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/;
|
const rsCheck = re.test(value);
|
if (!rsCheck) {
|
callback(new Error('请输入在[0-65535]之间的端口值'));
|
} else {
|
callback();
|
}
|
}
|
}, 1000);
|
}
|
|
//校验域名
|
export function vaildHost(str) {
|
let re = /^(?=^.{3,255}$)(http(s)?:\/\/)?(www\.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:\d+)*(\/\w+\.\w+)*$/
|
return re.test(str)
|
}
|
|
//校验自然数(非负整数)
|
export function isNonnegativeInteger(rule, value, callback) {
|
if(!value){
|
return callback(new Error('输入不能为空'));
|
}
|
const reg = /^\d+$/;
|
if(!reg.test(value)){
|
return callback(new Error('请输入非负整数'));
|
}
|
return callback()
|
}
|