export function isCHNAndEN (rule, value, callback) {
const reg = /^((?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])|(\d))+$/g;
if (value == '' || value == undefined || value == null) {
callback();
} else {
if (!reg.test(value)) {
callback(new Error('仅由英文字母,数字以及下划线组成'));
} else {
callback();
}
}
};
export function isValidate (rule, value, callback) {
const reg = /^[A-Za-z0-9-_\u4e00-\u9fa5]{1,30}$/;
if (value == '' || value == undefined || value == null) {
callback();
} else {
if (!reg.test(value)) {
callback(new Error('数字,中英文,中横线,下划线,utf-8中文'));
} else {
callback();
}
}
};
export function validatePasswordOne(rule, value, callback) {
const reg = /^[_a-zA-Z0-9]+$/;
if (value == '' || value == undefined || value == null) {
callback();
} else {
if (!reg.test(value)) {
callback(new Error('仅由英文字母,数字以及下划线组成'));
} else {
callback();
}
}
}
export const validatePasswordTWo = (rule, value, callback) => {
if (!value) {
return callback(new Error('请输入密码'))
}
if (!/^(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$)([^\u4e00-\u9fa5\s]){6,20}$/.test(value)) {
callback(new Error('请输入6-20位英文字母、数字或者符号(除空格),且字母、数字和标点符号至少包含两种'))
} else {
callback()
}
}
export function validatePassWordThree(rule, value, callback) {
if (value) {
let reg = /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[~!<>+@#$%^&*])[\da-zA-Z~!<>+@#$%^&*]{8,}$/;
if (reg.test(value)) {
callback();
} else {
callback('请输入必须包含数字、字母、特殊符号且大于等于8位(特殊符号包括: ~!<>+@#$%^&*)');
}
}
else {
callback();
}
}
export function validatePhoneTwo(rule, value, callback) {
const reg = /^((0\d{2,3}-\\d{7,8})|(1[345789]\d{9})|([(]\d{2,3}[)]\d{7,8})|(\d{7,8}))$/;
if (value == '' || value == undefined || value == null) {
callback();
} else {
if ((!reg.test(value)) && value != '') {
callback(new Error('请输入正确的电话号码或者固话号码'));
} else {
callback();
}
}
}
export function validateTelphone(rule, value, callback) {
const reg = /0\d{2,3}-\d{7,8}/;
if (value == '' || value == undefined || value == null) {
callback();
} else {
if ((!reg.test(value)) && value != '') {
callback(new Error('请输入正确的固定电话)'));
} else {
callback();
}
}
}
export function validatePhone(rule, value, callback) {
const reg = /^[1][3-9][0-9]{9}$/;
if (value == '' || value == undefined || value == null) {
callback();
} else {
if ((!reg.test(value)) && value != '') {
callback(new Error('请输入正确的电话号码'));
} else {
callback();
}
}
}
export function validateIdNo(rule, value, callback) {
const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if (value == '' || value == undefined || value == null) {
callback();
} else {
if ((!reg.test(value)) && value != '') {
callback(new Error('请输入正确的身份证号码'));
} else {
callback();
}
}
}
export function validateIdTree(sId){
var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
var iSum = 0;
if (!/^\d{17}(\d|x)$/i.test(sId)) return "你输入的身份证长度或格式错误";
sId = sId.replace(/x$/i, "a");
if (aCity[parseInt(sId.substr(0, 2))] == null) return "你的身份证地区非法";
sBirthday = sId.substr(6, 4) + "-" + Number(sId.substr(10, 2)) + "-" + Number(sId.substr(12, 2));
var d = new Date(sBirthday.replace(/-/g, "/"));
if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate())) return "身份证上的出生日期非法";
for (var i = 17; i >= 0; i--) iSum += (Math.pow(2, i) % 11) * parseInt(sId.charAt(17 - i), 11);
if (iSum % 11 != 1) return "你输入的身份证号非法";
return true;
}
export function validateIdTwo(rule, value, callback) {
const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if (value == '' || value == undefined || value == null) {
callback();
} else {
const arrExp = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
const arrValid = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2];
if (/^\d{17}\d|x$/i.test(value)) {
let sum = 0, idx;
for (let i = 0; i < value.length - 1; i++) {
sum += parseInt(value.substr(i, 1), 10) * arrExp[i];
}
idx = sum % 11;
if (arrValid[idx] == value.substr(17, 1).toUpperCase()) {
callback();
} else {
callback(new Error('请输入正确的身份证号码'));
}
} else {
callback(new Error('请输入正确的身份证号码'));
}
}
}
export function validateEMail(rule, value, callback) {
const reg = /^([a-zA-Z0-9]+[-_\.]?)+@[a-zA-Z0-9]+\.[a-z]+$/;
if (value == '' || value == undefined || value == null) {
callback();
} else {
if (!reg.test(value)) {
callback(new Error('请输入正确的邮箱'));
} else {
callback();
}
}
}
export function IllegalVerification(data) {
let reg = /\bselect\b|\bupdate\b|\bdelete\b|\btruncate\b|\bjoin\b|\bunion\b|\bexec\b|\binsert\b|\bdrop\b|\bcount\b|'|"|;|>|<|%/i
if (reg.test(data)) {
callback(new Error("请勿输入以下非法字符:select|update|delete|truncate|join|union|exec|insert|drop|count|'|\"|;|>|<|%"));
} else {
callback();
}
}
export function checkMax20000(rule, value, callback) {
if (value == '' || value == undefined || value == null) {
callback();
} else if (!Number(value)) {
callback(new Error('请输入[1,20000]之间的数字'));
} else if (value < 1 || value > 20000) {
callback(new Error('请输入[1,20000]之间的数字'));
} else {
callback();
}
}
export function checkMaxVal(rule, value, callback) {
if (value < 0 || value > 最大值) {
callback(new Error('请输入[0,最大值]之间的数字'));
} else {
callback();
}
}
export function isInteger(rule, value, callback) {
if (!value) {
return callback(new Error('输入不可以为空'));
}
setTimeout(() => {
if (!Number(value)) {
callback(new Error('请输入正整数'));
} else {
const re = /^[0-9]*[1-9][0-9]*$/;
const rsCheck = re.test(value);
if (!rsCheck) {
callback(new Error('请输入正整数'));
} else {
callback();
}
}
}, 0);
}
export function isIntegerNotMust(rule, value, callback) {
if (!value) {
callback();
}
setTimeout(() => {
if (!Number(value)) {
callback(new Error('请输入正整数'));
} else {
const re = /^[0-9]*[1-9][0-9]*$/;
const rsCheck = re.test(value);
if (!rsCheck) {
callback(new Error('请输入正整数'));
} else {
callback();
}
}
}, 1000);
}
export function isBtnOneToHundred(rule, value, callback) {
if (!value) {
return callback(new Error('输入不可以为空'));
}
setTimeout(() => {
if (!Number(value)) {
callback(new Error('请输入整数,值为[1,100]'));
} else {
if (value < 1 || value > 100) {
callback(new Error('请输入整数,值为[1,100]'));
} else {
callback();
}
}
}, 100);
}
export function validateChinese(rule, value, callback) {
const reg = /[\u4e00-\u9fa5]/;
if (value == '' || value == undefined || value == null) {
callback();
} else {
if ((!reg.test(value)) && value != '') {
callback(new Error('请正确输入中文'));
} else {
callback();
}
}
}
export function validateContacts(rule, value, callback) {
if (!value) {
return callback(new Error('请输入中文'))
}
if (!/^[\u0391-\uFFE5A-Za-z]+$/.test(value)) {
callback(new Error('不可输入特殊字符'))
} else {
callback()
}
}
export function validateNumber(rule, value, callback) {
let numberReg = /^\d+$|^\d+[.]?\d+$/;
if (value !== '') {
if (!numberReg.test(value)) {
callback(new Error('请输入数字'))
} else {
callback()
}
} else {
callback(new Error('请输入值'))
}
}
export function validateTwoDecimal(rule, value, callback) {
let numberReg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
if (value !== '') {
if (numberReg.test(value)) {
callback()
} else {
callback(new Error('最多两位小数!'))
}
} else {
callback(new Error('请输入值'))
}
}
export function validateNumberLetter(rule, value, callback) {
let numberReg = /^[0-9a-zA-Z]+$/;
if (value !== '') {
if (numberReg.test(value)) {
callback()
} else {
callback(new Error('请输入数字和字母!'))
}
} else {
callback(new Error('请输入值'))
}
}
export function validateWeChat(rule, value, callback) {
let numberReg = /^([a-zA-Z]{1}[-_a-zA-Z0-9]{5,19})+$/;
if (value !== '') {
if (numberReg.test(value)) {
callback()
} else {
callback(new Error('请输入住正确的微信号!'))
}
} else {
callback(new Error('请输入值'))
}
}
export function validateQQ(rule, value, callback) {
let numberReg = /^[1-9][0-9]{4,11}$/;
if (value !== '') {
if (numberReg.test(value)) {
callback()
} else {
callback(new Error('请输入住正确的QQ号!'))
}
} else {
callback(new Error('请输入值'))
}
}
export function validateIsPort(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();
}
}
}, 100);
}
export function validateIsCheckPort(rule, value, callback) {
if (!value) {
callback();
}
setTimeout(() => {
if (value == '' || typeof (value) == undefined) {
} 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();
}
}
}, 100);
}
export function validateLowerCase(value) {
const reg = /^[a-z]+$/;
if (value !== '') {
if (reg.test(value)) {
callback(new Error('请输入小写字母'));
} else {
callback();
}
} else {
callback(new Error('请输入小写字母'));
}
}
export function validateUpperCase(value) {
const reg = /^[A-Z]+$/;
if (value !== '') {
if (reg.test(value)) {
callback(new Error('请输入大写字母'));
} else {
callback();
}
} else {
callback(new Error('请输入大写字母'));
}
}
export function validateAlphabets(value) {
const reg = /^[A-Za-z]+$/;
if (value !== '') {
if (reg.test(value)) {
callback(new Error('请输入大小写字母'));
} else {
callback();
}
} else {
callback(new Error('请输入大小写字母'));
}
}
export function validateTrain(value) {
let numberReg = /^[GCDZTSPKXLY1-9]\d{1,4}$/;
if (value !== '') {
if (numberReg.test(value)) {
callback()
} else {
callback(new Error('请输入正确的车次!'))
}
} else {
callback(new Error('请输入值'))
}
}
export function validateIP(rule, value, callback) {
if (value == '' || value == undefined || value == null) {
callback();
} else {
const reg = /^(\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 ((!reg.test(value)) && value != '') {
callback(new Error('请输入正确的IP地址'));
} else {
callback();
}
}
}
export function validateURLOne(url) {
const urlRegex = /^(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.,?'\\+&%$#=~_-]+))*$/;
if (urlRegex.test(data)) {
callback();
} else {
callback(new Error('请输入正确的url格式'));
}
}
export function validateUrlTwo(value) {
let numberReg = /^((ht|f)tps?:\/\/)?[\w-]+(\.[\w-]+)+:\d{1,5}\/?$/;
if (value !== '') {
if (numberReg.test(value)) {
callback()
} else {
callback(new Error('请输入正确的车次!'))
}
} else {
callback(new Error('请输入值'))
}
}
export function validateUrlTree(value) {
let numberReg = /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/;
if (value !== '') {
if (numberReg.test(value)) {
callback()
} else {
callback(new Error('请输入正确的网址!'))
}
} else {
callback(new Error('请输入值'))
}
}
export function validateUrlFour(value) {
let numberReg = /^(((ht|f)tps?):\/\/)?[\w-]+(\.[\w-]+)+([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?$/;
if (value !== '') {
if (numberReg.test(value)) {
callback()
} else {
callback(new Error('请输入正确的网址!'))
}
} else {
callback(new Error('请输入值'))
}
}
export function socialCode(value) {
let numberReg = /^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/;
if (value !== '') {
if (numberReg.test(value)) {
callback()
} else {
callback(new Error('请输入正确的社会信用代码!'))
}
} else {
callback(new Error('请输入值'))
}
}
export function validateHtml(value) {
let reg = /<("[^"]*"|'[^']*'|[^'">])*>/;
if (value !== '') {
if (reg.test(value)) {
callback()
} else {
callback(new Error('请输入正确的HTML!'))
}
} else {
callback(new Error('请输入值'))
}
}
export function validateDate(value) {
let reg = /^(\d{4})\-(\d{2})\-(\d{2}) (\d{2})(?:\:\d{2}|:(\d{2}):(\d{2}))$/.test(value) || /^(\d{4})\-(\d{2})\-(\d{2})$/;
if (value !== '') {
if (reg.test(value)) {
callback()
} else {
callback(new Error('请输入正确的日期!'))
}
} else {
callback(new Error('请输入值'))
}
}
export function removeZero(value) {
value.toString();
value=value.replace(/^0+/,"");
let num='';
if(value.toString().split(".")[0]==""){
return '0'+value
}else{
return value
}
}