//表单验证,参考https://www.cnblogs.com/bester-ace/articles/10292697.html
export const regular = {
// 验证自然数
naturalNumber: /^(([0-9]*[1-9][0-9]*)|(0+))$/,
naturalNumberMsg: '请输入自然数',
// 验证数字最小为1
minOneNumber: /^[1-9]\d*$/,
minOneNumberMsg: '请输入不小于1的整数',
// 验证数字最小为1
minOneNumberNum: /^([1-9]\d{0,2}|0)$/,
minOneNumberNums: /^([1-9]\d{0,3}|0)$/,
minOneNumberNumMsg: '请输入0到999内的数字',
minOneNumberNumMsgs: '请输入0到9999内的数字',
num0to99999: /^([1-9]\d{0,4}|0)$/,
num0to99999Msg: '请输入0到99999内的数字',
num0to9999: /^([1-9]\d{0,3}|0)$/,
num0to9999Msg: '请输入0到9999内的整数',
// 验证数字0-99
num0to99: /^\d{1,2}$/,
num0to99Msg: '0~99的整数,单位秒',
//验证数字最小为100001
minNumber100001: /^([1-9]\d{4}[1-9]|[1-9]\d{5,9}[0-9]|0)$/,
minNumber100001Msgs: '请输入0或大于100000的整数,并且位数小于11位',
// 英文
english: /[a-zA-Z]/,
englishMsg: '请输入英文字母',
// 座机
telephone: /^\d{3}-\d{7,8}|\d{4}-\d{7,8}$/,
telephoneMsg: '请输入正确的座机号',
//手机号码(第一位是‘1’即认为手机号正确)
mobile: /^1\d{10}$/,
mobileMsg: '请输入正确的手机号',
phone: /^1(3|4|5|6|7|8|9)\d{9}$/,
phoneMsg: '请输入11位合法手机号',
email: /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,7})$/,
emailMsg: '请输入正确邮箱',
// 银行卡号码
bankCard: /^[1-9]\d{9,19}$/,
bankCardMsg: '请输入正确的银行卡号码',
// 证件号码
IDNumber:
/^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
IDNumberMsg: '请输入正确的证件号码',
//
LicenseNumber:
/(^(?:(?![IOZSV])[\dA-Z]){2}\d{6}(?:(?![IOZSV])[\dA-Z]){10}$)|(^\d{15}$)/,
LicenseNumberMsg: '请输入正确的营业执照号',
orgCode: /([A-Z-0-9]{8}-[A-Z-0-9])|([A-Z-0-9]{9}$)/,
orgCodeMsg: '请输入正确的组织机构码',
// 身份证号码,包括15位和18位的
IDCard:
/(^[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]$)|(^[1-9]\d{7}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)/,
IDCardMsg: '请输入正确的身份证号码',
// QQ号码
qq: /^[1-9]\d{4,11}$/,
qqMsg: '请输入正确的QQ号码',
// 网址, 仅支持http和https开头的
url: /^(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-.,@?^=%&:/~+#]*[\w\-@?^=%&/~+#])?$/,
urlMsg: '请输入以http和https开头的网址',
// 0到20位的英文字符和数字
enNum0to20: /^[a-z0-9A-Z]{0,20}$/,
enNum0to20Msg: '请输入20位以内的英文字符和数字',
// 2到100位的中英文字符和空格
cnEnSpace2to100: /^[a-zA-Z\u4E00-\u9FA5\s*]{2,100}$/,
cnEnSpace2to100Msg: '请输入2到100位的中英文字符和空格',
// 数字和换行符
numLinefeed: /^[0-9\n*]+$/,
numLinefeedMsg: '请输入数字和换行符',
// 255位以内的字符
char0to255: /^.{0,255}$/,
char0to255Msg: '请输入255位以内的字符',
// 200位以内的字符
char0to200: /^.{0,200}$/,
char0to200Msg: '最多输入200个文字',
//0到60位以内的字符
char0to30: /^.{0,30}$/,
char0to30Msg: '最多输入30个文字',
char0to10: /^.{0,10}$/,
char0to10Msg: '最多输入10个文字',
char0to3: /^.{0,3}$/,
char0to3Msg: '最多输入3位数',
// 1到50位以内的字符
char0to50: /^[\u4e00-\u9fffa-zA-Z0-9]{1,50}$/,
char0to50Msg: '请输入1-50位以内的文本字符(不可使用符号)',
specialChar0to30: /^[\u4e00-\u9fffa-zA-Z0-9]{1,30}$/,
specialChar0to30Msg: '请输入1-30位以内的文本字符(不可使用符号)',
domainName:
/^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/,
domainNameMsg: '企业域名格式不正确',
// 1到50位的英文字符和数字
enNum0to50: /^[a-z0-9A-Z]{1,50}$/,
enNum0to50Msg: '请输入1-50位以内的英文字符或数字',
// 1到18位数字、字母
enNum0to18: /^[a-z0-9A-Z]{1,18}$/,
enNum0to18Msg: '请输入18位字符长度的数字或字母',
baseUrl: 'http://172.18.1.13:18080',
//支持 http https www 开头的url
checkUrl: /[a-zA-z]+:\/[^\s]*/,
checkUrlMsg: '请输入正确的url',
//ip 校验
checkIp:
/^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/,
checkIpMsg: '请输入正确的IP',
port: /^([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-4]\d{4}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/,
portMsg: '请输入正确的端口号',
// unSpecial:/^[\u0391-\uFFE5A-Za-z\d]+$/,
unSpecial: /^[\u4e00-\u9fa5A-Za-z\d]+$/,
unSpecialMsg: '不可使用符号',
checkCode: /^[0-9]{6}$/,
checkCodeMsg: '验证码格式不正确',
password:
/^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?![,\.#@%'\+\*\-:;^_`]+$)[,\.#%'\+\*\-:;^_`0-9A-Za-z]{6,16}$/,
passwordMsg:
'密码必须是数字、字母、符号至少两种以上的组合(6-16位),请重新输入',
}
/**
* @description 排序值验证,排序值不可以大于255
*/
export const validateOrder = function (rule, value, callback) {
if (parseInt(value) > 255) {
return callback(new Error('排序值不可以大于255'))
} else {
callback()
}
}
String.prototype.gllength = function () {
let len = 0
for (let i = 0; i < this.length; i++) {
if (this.charCodeAt(i) > 127 || this.charCodeAt(i) == 94) {
len += 2
} else {
len++
}
}
return len
}
export const validategllength2And10 = (rule, value, callback) => {
if (value == undefined) {
callback()
}
if (value.trim().gllength() > 10 || value.trim().gllength() < 2) {
callback(new Error('请输入2-10个字符(1汉字=2字母=2字符)'))
} else {
callback()
}
}
export const validategllength2And30 = (rule, value, callback) => {
if (value == undefined) {
callback()
}
if (value.trim().gllength() > 30 || value.trim().gllength() < 2) {
callback(new Error('请输入2-30个字符(1汉字=2字母=2字符)'))
} else {
callback()
}
}
export const valid2And60 = (rule, value, callback) => {
if (value === undefined || value === null || value === '') {
callback()
}
if (value.trim().gllength() > 60) {
callback(new Error('用户名称不能超过60个字符'))
} else {
callback()
}
}
export const validategllength2And100 = (rule, value, callback) => {
if (value === undefined || value === null) {
callback()
} else {
var textValue = value.replace(/[\r\n]/g, '') //去除换行.
if (
(textValue.trim().gllength() <= 100 &&
textValue.trim().gllength() >= 2) ||
textValue.trim().gllength() === 0
) {
callback()
} else {
callback(new Error('请输入2-100个字符(1汉字=2字母=2字符)'))
}
}
}
export const validategllength100 = (rule, value, callback) => {
if (value === undefined || value === null) {
callback()
} else {
var textValue = value.replace(/[\r\n]/g, '') //去除换行.
if (
textValue.trim().gllength() <= 100 ||
textValue.trim().gllength() === 0
) {
callback()
} else {
callback(new Error('请输入不大于100个字符(1汉字=2字母=2字符)'))
}
}
}
export const validategllength2And150 = (rule, value, callback) => {
if (value == undefined) {
callback()
}
if (value.trim().gllength() > 150) {
callback(new Error('最多输入150个字符(1汉字=2字母=2字符)'))
} else {
callback()
}
}
export const validategllength2And60 = (rule, value, callback) => {
if (value === undefined || value === null) {
callback()
} else {
var textValue = value.replace(/[\r\n]/g, '') //去除换行.
if (
(textValue.trim().gllength() <= 60 && textValue.trim().gllength() >= 2) ||
textValue.trim().gllength() === 0
) {
callback()
} else {
callback(new Error('请输入2-60个字符(1汉字=2字母=2字符)'))
}
}
}
export const validategllength2And20 = (rule, value, callback) => {
if (value === undefined || value === null) {
callback()
} else {
var textValue = value.replace(/[\r\n]/g, '') //去除换行.
if (
(textValue.trim().gllength() <= 20 && textValue.trim().gllength() >= 2) ||
textValue.trim().gllength() === 0
) {
callback()
} else {
callback(new Error('请输入2-20个字符(1汉字=2字母=2字符)'))
}
}
}
export const emailLength6And50 = (rule, value, callback) => {
if (value === undefined || value === null) {
callback()
} else {
var textValue = value.replace(/[\r\n]/g, '') //去除换行.
if (
(textValue.trim().gllength() <= 50 && textValue.trim().gllength() >= 6) ||
textValue.trim().gllength() === 0
) {
callback()
} else {
callback(new Error('请输入6-50位长度邮箱'))
}
}
}
/*let regEmail = new RegExp(/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,7})$/);
if(!this.Register2Form.email || !regEmail.test(this.Register2Form.email)){
this.errorMesage('请输入正确邮箱')
return
}
if(this.Register2Form.email.length < 6 || this.Register2Form.email.length > 50){
this.errorMesage('请输入6-50位长度邮箱')
return
}*/