输入类型的验证方法
/**
* Created by PanJiaChen on 16/11/18.
*/
/**
* @param {string} path
* @returns {Boolean}
*/
export function isExternal(path) {
return /^(https?:|mailto:|tel:)/.test(path);
}
/**
* @param {string} str
* @returns {Boolean}
*/
export function validUsername(str) {
const valid_map = ["admin", "editor"];
return valid_map.indexOf(str.trim()) >= 0;
}
/**
* @param {string} url
* @returns {Boolean}
*/
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);
}
/**
* @param {string} str
* @returns {Boolean}
*/
export function validLowerCase(str) {
const reg = /^[a-z]+$/;
return reg.test(str);
}
/**
* @param {string} str
* @returns {Boolean}
*/
export function validUpperCase(str) {
const reg = /^[A-Z]+$/;
return reg.test(str);
}
/**
* @param {string} str
* @returns {Boolean}
*/
export function validAlphabets(str) {
const reg = /^[A-Za-z]+$/;
return reg.test(str);
}
/**
* @param {string} email
* @returns {Boolean}
*/
export function validEmail(email) {
const reg = /^(([^<>()\[\]\\.,;:\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 reg.test(email);
}
export function isvalidPhone(phone) {
const reg = /^1[0-9]\d{9}$/;
return reg.test(phone);
}
/**
* @param {string} str
* @returns {Boolean}
*/
export function isString(str) {
if (typeof str === "string" || str instanceof String) {
return true;
}
return false;
}
/**
* @param {Array} arg
* @returns {Boolean}
*/
export function isArray(arg) {
if (typeof Array.isArray === "undefined") {
return Object.prototype.toString.call(arg) === "[object Array]";
}
return Array.isArray(arg);
}
/**
* 是否合法IP地址
* @param rule
* @param value
* @param callback
*/
export function passs(rule, value, callback) {
debugger
if (value === "" || value === undefined || value == null) {
callback();
} else{
var reg=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){5,19}$/;
if(!reg.test(value)){
callback(new Error("只能输入6-20个以字母开头、可带数字的字串"));
}else {
callback();
}
}
}
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 bankUsername(rule, value, callback){
const reg = /^([1-9]{1})(\d{15}|\d{16}|\d{18})$/;
if (value === "" || value === undefined || value == null) {
callback();
} else {
if (!reg.test(value) && value !== "") {
callback(new Error("请输入正确银行卡号"));
} else {
callback();
}
}
}
//含有数字字母且必须有大写字母
export function accountNumber(rule, value, callback){
const reg = /^(?=.*?[A-Za-z]+)(?=.*?[0-9]+)(?=.*?[A-Z]).*$/;
if (value === "" || value === undefined || value == null) {
callback();
} else {
if (!reg.test(value) && value !== "") {
callback(new Error("请输入含有数字字母且必须有大写字母"));
} else {
callback();
}
}
}
/* 是否手机号码或者固话*/
export function validatePhoneTwo(rule, value, callback) {
const reg = /^((0\d{2,3}-\d{7,8})|(1[34578]\d{9}))$/;
if (value === "" || value === undefined || value == null) {
callback();
} else {
if (!reg.test(value) && value !== "") {
callback(new Error("请输入正确的电话号码或者固话号码"));
} else {
callback();
}
}
}
/* 是否固话*/
export function validateTelephone(rule, value, callback) {
const reg = /0\d{2}-\d{7,8}/;
if (value === "" || value === undefined || value == null) {
callback();
} else {
if (!reg.test(value) && value !== "") {
callback(new Error("请输入正确的固话(格式:区号+号码,如010-1234567)"));
} else {
callback();
}
}
}
/* 是否手机号码*/
export function validatePhone(rule, value, callback) {
const reg = /^[1][3,4,5,6,7,8,9][0-9]{9}$/;
if (value === "" || value === undefined || value == null) {
callback();
} else {
if (!reg.test(value) && value !== "") {
callback(new Error("请输入正确的电话号码"));
} else {
callback();
}
}
}
/* 是否报案号*/
export function validateBanhao(rule, value, callback) {
const reg = /^[a-zA-Z0-9]*$/;
if (value === "" || value === undefined || value == null) {
callback();
} else {
if (!reg.test(value) && value !== "") {
callback(new Error("请输入正确的报案号"));
} else {
callback();
}
}
}
/* 是否工时费*/
export function validateGsf(rule, value, callback) {
const reg = /^[0-9]+\.?[0-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 validateId_cph(rule, value, callback) {
const reg = /(^[\u4E00-\u9FA5]{1}[A-Z0-9]{6,7}$)|(^[A-Z]{2}[A-Z0-9]{2}[A-Z0-9\u4E00-\u9FA5]{1}[A-Z0-9]{4,5}$)|(^[\u4E00-\u9FA5]{1}[A-Z0-9]{6}[挂学警军港澳]{1}$)|(^[A-Z]{2}[0-9]{4,5}$)|(^(08|38){1}[A-Z0-9]{4}[A-Z0-9挂学警军港澳]{1,2}$)/.test(
value
);
if (value === "" || value === undefined || value == null) {
callback();
} else {
if (!reg && value !== "") {
callback(new Error("请输入正确的车牌号"));
} else {
callback();
}
}
}
//底盘号的验证
export function validateId_dph(rule, value, callback) {
const reg = getCheckVin(value);
if (value === "" || value === undefined || value == null) {
callback();
} else {
if (!reg && value !== "") {
callback(new Error("请输入正确的底盘号"));
} else {
callback();
}
}
}
//无框架效验底盘号
export function dph(val) {
const reg = /^[A-HJ-NPR-Z\d]{8}[X\d][A-HJ-NPR-Z\d]{3}\d{5}$/;
if(reg.test(val)){
return true
}else {
return false
}
}
var Arr = new Array();
var Brr = new Array();
Arr["A"] = 1;
Arr["B"] = 2;
Arr["C"] = 3;
Arr["D"] = 4;
Arr["E"] = 5;
Arr["F"] = 6;
Arr["G"] = 7;
Arr["H"] = 8;
Arr["J"] = 1;
Arr["K"] = 2;
Arr["L"] = 3;
Arr["M"] = 4;
Arr["N"] = 5;
Arr["P"] = 7;
Arr["R"] = 9;
Arr["S"] = 2;
Arr["T"] = 3;
Arr["U"] = 4;
Arr["V"] = 5;
Arr["W"] = 6;
Arr["X"] = 7;
Arr["Y"] = 8;
Arr["Z"] = 9;
Arr["1"] = 1;
Arr["2"] = 2;
Arr["3"] = 3;
Arr["4"] = 4;
Arr["5"] = 5;
Arr["6"] = 6;
Arr["7"] = 7;
Arr["8"] = 8;
Arr["9"] = 9;
Arr["0"] = 0;
Brr[1] = 8;
Brr[2] = 7;
Brr[3] = 6;
Brr[4] = 5;
Brr[5] = 4;
Brr[6] = 3;
Brr[7] = 2;
Brr[8] = 10;
Brr[9] = 0;
Brr[10] = 9;
Brr[11] = 8;
Brr[12] = 7;
Brr[13] = 6;
Brr[14] = 5;
Brr[15] = 4;
Brr[16] = 3;
Brr[17] = 2;
function getCheckVin(sVIN) {
var sKYZF = "ABCDEFGHJKLMNPRSTUVWXYZ1234567890";
var sJYW = "";
var bl = false;
var blKYZF = false;
if (sVIN.length == 17) {
var iJQS = 0,
intTemp = 0;
var ht = Arr;
var htZM = Brr;
try {
for (var i = 0; i < sVIN.length; i++) {
if (sKYZF.indexOf(sVIN.substr(i, 1)) != -1) {
blKYZF = true;
iJQS = iJQS + parseInt(ht[sVIN.substr(i, 1)]) * parseInt(htZM[i + 1]);
} else {
blKYZF = false;
break;
}
}
if (blKYZF) {
intTemp = iJQS % 11;
if (intTemp == 10) {
sJYW = "X";
} else {
sJYW = intTemp.toString();
}
if (sJYW == sVIN.substr(8, 1)) bl = true;
} else {
bl = false;
}
} catch (err) {
bl = false;
}
}
return bl;
}
/** 大于包括0 的正整数
*
* **/
export function validate_number(rule, value, callback) {
const reg = /^[1-9]\d*$/;
if (value === "" || value === undefined || value == null) {
callback();
} else {
if (value == 0) {
callback();
} else if (!reg.test(value) && value !== "") {
callback(new Error("请输入正整数"));
} else {
callback();
}
}
}
export function validate_numbertwo(rule, value, callback) {
const reg = /^[1-9]\d*$/;
if (value === "" || value === undefined || value == null) {
callback();
} else {
if (!reg.test(value) && value !== "") {
callback(new Error("请输入正整数"));
} else {
callback();
}
}
}
/** 大于-1的正整数
*
* **/
export function validate_kj(rule, value, callback) {
const reg = /^[1-9]\d*$/;
if (value === "" || value === undefined || value == null) {
callback();
} else {
if (value == 0 || value == -1) {
callback();
} else if (!reg.test(value) && value !== "") {
callback(new Error("请输入-1以上正整数"));
} else {
callback();
}
}
}
//折扣价验证
export function validate_Discount(rule, value, callback) {
if (!value) {
return callback(new Error("折扣必填!"));
} else if (value > 100 || value <= 0) {
return callback(new Error("固定折扣不能为空,请输入折扣价1-100的整数"));
} else {
callback();
}
}
//量位小数的认证
export function validate_number_two(rule, value, callback) {
const reg = /^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/;
if (value === "" || value === undefined || value == null) {
callback();
} else {
if (value == 0) {
callback();
} else if (!reg.test(value) && value !== "") {
callback(new Error("最多只能输入两位小数"));
} else {
callback();
}
}
}
//1-30正整数验证
export function validate_yanzheng(rule, value, callback) {
const reg = /^([1-9]|[1-2]\d|30|0.1)$/;
if (value === "" || value === undefined || value == null) {
callback();
} else {
if (!reg.test(value) && value !== "") {
callback(new Error("请输入正整数"));
} else {
callback();
}
}
}
//大写字母和数字
export function validate_bxdh(rule, value, callback) {
const reg = /[A-Z0-9]{5}/;
if (value === "" || value === undefined || value == null) {
callback();
} else {
if (!reg.test(value) && value !== "") {
callback(new Error("请输入正确的单号"));
} else {
callback();
}
}
}
//大写字母和数字
export function validate_name(rule, value, callback) {
const reg = /[\u4E00-\u9FA5\uF900-\uFA2D]/;
if (value === "" || value === undefined || value == null) {
callback();
} else {
if (!reg.test(value) && value !== "") {
callback(new Error("请输入2-4个汉字"));
} else {
callback();
}
}
}
// 有两位小数的正实数
export function Positive_name(rule, value, callback) {
const reg = /^[0-9]+(.[0-9]{2})?$/;
if (value === "" || value === undefined || value == null) {
callback();
} else {
if (!reg.test(value) && value !== "") {
callback(new Error("请输入数字或两位的小数"));
} else {
callback();
}
}
}
// 验证小数
export function decimal(rule, value, callback) {
const reg = /^-?[0-9]*(\.\d*)?$|^-?d^(\.\d*)?$/;
if (value === "" || value === undefined || value == null) {
callback();
} else {
if (!reg.test(value) && value !== "") {
callback(new Error("请输入整数或小数"));
} else {
callback();
}
}
}