手机号验证
export const validatePhone = (rule, value, callback) => {
let reg = /^1[0-9]{10}$/
if (!value) {
callback(new Error('手机号码不能为空'))
} else if (reg.test(value)) {
callback()
} else {
callback(new Error('手机号码格式不正确'))
}
}
密码验证
包含三种及以上类型:大写字母、小写字母、数字、特殊符号。长度为8-32位,特殊字符包括!@#$%^&*()_±=
export const validateAccountPwd = (rule, value, callback) => {
var reg = new RegExp('^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z_!@#$%^&*()-+=]+$)(?![a-z0-9]+$)(?![a-z_!@#$%^&*()-+=]+$)(?![0-9_!@#$%^&*()-+=]+$)[a-zA-Z0-9_!@#$%^&*()-+=]{8,32}$')
if (!value) {
callback(new Error('密码不能为空'))
} else if (reg.test(value)) {
callback()
} else {
callback(new Error('密码必须符合规范'))
}
}
字符串验证
//由小写字母、数字、下划线(_)、中划线(-)组成,以字母开头
//字母或数字结尾,4-64个字符
export const validateSqlName = (rule, value, callback) => {
let reg = /^[a-z][0-9a-z_-]*[0-9a-z]$/
if (!value) {
callback(new Error('数据库名称不能为空'))
} else if (value.length > 64) {
callback(new Error('名称长度不能超过64'))
} else if (reg.test(value) && value.length <= 64) {
callback()
} else {
callback(new Error('名称必须符合规范'))
}
}
//只允许小写字母、数字、短横线且不能以短横线开头或结尾
let reg = /^(?!-)(?!.*?-$)[a-z0-9\-]*$/g
首字母大小写
// 首字母大写
export function titleCase(str) {
return str.replace(/( |^)[a-z]/g, L => L.toUpperCase())
}
// 首字母小写
export function titleCase(str) {
return str.replace(/^./, (L) => L.toLowerCase())
}
千分化
const thousandth= (num) => {
return num.replace(new RegExp(`(?!^)(?=(\\d{3})+${num.includes('.') ? '\\.' : '$'})`, 'g'), ',')
}
下划线转驼峰
// 下划线转驼峰
function toHump(name) {
return name.replace(/\_(\w)/g, function(all, letter){
return letter.toUpperCase();
});
}
// 驼峰转下划线
export function camelCase(str) {
return str.replace(/([A-Z])/g, "_$1").toLowerCase()
}
url验证
export const validateUrl = (rule, value, callback, row) => {
let reg = /^[/][a-zA-Z0-9-/.%?#&]{2,80}(?<![/.%?#&])$/
let { domain } = row
if (domain && !value) {
callback()
}
if (!reg.test(value)) {
callback(new Error('请输入符合规范的url'))
}
}
服务器IP验证
export const validateIp = (rule, value, callback) => {
let reg = /^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$/
if (!value) {
callback(new Error('请输入服务器IP'))
} else {
if (reg.test(value)) {
callback()
}
callback(new Error('请输入正确格式服务器IP'))
}
}
域名验证
//域名校验
export const validateDomain = (rule, value, callback, row) => {
let regL = /^[*]([.]{0,1})([a-zA-Z0-9]{1,63}[.])+[A-Za-z]{2,6}$/
let regS = /^((?!-)[a-zA-Z0-9-]{1,63}(?<!-)[.])+[A-Za-z]{2,6}$/
let { url } = row
if (url && !value) {
callback()
}
if (!url && !value) {
callback(new Error('域名和URL请至少填写一项'))
}
if (!regS.test(value) && !regL.test(value)) {
callback(new Error('请输入符合规范的域名'))
}
}
// 泛域名校验
export const validateWideDomain = (val) => {
let reg = /^[*]([.]{0,1})([a-zA-Z0-9]{1,63}[.])+[A-Za-z]{2,6}$/
if (reg.test(val)) {
return true
}
return false
}
// 标准域名校验
export const validateNormalDomain = (val) => {
let reg = /^((?!-)[a-zA-Z0-9-]{1,63}(?<!-)[.])+[A-Za-z]{2,6}$/
if (reg.test(val)) {
return true
}
return false
}
匹配某个字符前后的数据
//--字符前数据
var data='486451548 -- 匹配前面字符';
var reg = /([--][^/]+)$/;
var str = data.replace(reg, "").trim();
//"冒号:前面".match(/(\S*):/)[1];
return str;
//--字符后数据
var data='486451548 -- 匹配后面字符';
var reg = /--(.*)/;
var str = data.match(reg)[1].trim();
//"冒号:后面".match(/:(\S*)/)[1];
return str;
常见校验
//请输入四位大写英文或数字
var reg = /^[A-Za-z0-9]{4}$/;
//请输入20位以内字符
var reg = /^.{0,20}$/;
//请输入1~99整数
var reg = /^(([1-9][0-9])|[1-9])$/;
//请输入0~20整数
var reg=/^[0-9]|[1][0-9]{1}|[2]{0}$/;
//请输入1-20整数
var reg=/^([1-9]|1[0-9]|2[0])$/;