// 邮箱extend("email", value =>{
//let re = /^([a-zA-Z0-9]+[_|\-|\.]?)+@([a-zA-Z0-9]+[_|\-|\.]?)+([a-zA-Z0-9]{1,})+\.[a-zA-Z]{2,}$/;// let re = /^[a-zA-Z0-9_-|\.|\-]+@[a-zA-Z0-9_-|\.|\-]+(\.[a-zA-Z]+)+$/;let re =/^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;if(!re.test(value)){
return"请输入正确的{_field_}";}elseif(value.length >50){
return"{_field_}不能超过50个字符";}else{
returntrue;}});// 两次输入密码不一致extend("confirmed",{
...confirmed,
message:"两次密码输入不一致"});//输入框不为空extend("required",{
...required,
message:"请输入{_field_}"});//账号不支持中文 只能以字母开头 长度为6-32个字符 至少包含英文字母、数字或特殊字符(-_)中的两种extend("eNameNum", value =>{
//let re = /(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]{8,12}/;let re =/^[a-zA-Z][\w\(\)\-]{6,32}$/;let reg =/^[A-Za-z]+$/;if(re.test(value)&&!reg.test(value)){
returntrue;}return"请输入正确的{_field_}(由6~32位大/小写字母,数字组合)";});//下拉框不为空extend("selected",{
...required,
message:"请选择{_field_}"});//复选框不为空extend("checked",{
...required,
message:"请勾选{_field_}"});//数字和字母extend("alpha_num",{
...required,
message:"只能输入数字和字母"});//最小extend("min",{
validate(value, args){
return value.toString().length >= args.length;},
params:["length"],
message:"长度不能少于 {length} 个字符"});//最大extend("max",{
validate(value, args){
return value.toString().length <= args.length;},
params:["length"],
message:"长度不能超过 {length} 个字符"});//上传文件不能为空extend("file",{
...required,
message:"请上传{_field_}"});// 字段最大字符,提示里面还有字段label,maxHasLabel:20extend("maxHasLabel",{
validate(value, args){
return value.length <= args.length;},
params:["length"],
message:"{_field_}不能超过{length}个字符"});// 区间范围 只能输入区间的字母或数字extend("section",{
validate(value, args){
let temp = args.section.split("-");if(value.length >= temp[0]&& value.length <= temp[1]){
return/^[0-9a-zA-Z]*$/g.test(value);}returnfalse;},
params:["section"],
message:"请输入{section}位数字或字母"});//3.自定义extend("num", value =>{
let re =/^[0-9]+$/;if(re.test(value)){
returntrue;}return"只能输入数字";});//大于1的正整数extend("nums", value =>{
let re =/^\+?[1-9]\d*$/;if(re.test(value)){
returntrue;}return"只能输入大于0的正整数";});//只能输入数字,切保留两位小数extend("numss", value =>{
let re =/^\d+(\.\d{1,2})?$/;if(re.test(value)&&Number(value)>0){
returntrue;}return"只能输入大于0的数字,且保留两位小数";});//正确的url跳转地址extend("url", value =>{
let re =/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/;if(re.test(value)){
returntrue;}return"请输入正确的产品地址";});//手机号extend("mobile", value =>{
let re =/^1[3456789]\d{9}$/;if(re.test(value)){
returntrue;}return"请输入正确的手机号码";});//手机号(仅供api管理服务应用使用)extend("mobiles", value =>{
let re =/^1[0123456789]\d{9}$/;if(re.test(value)){
returntrue;}return"请输入正确的手机号码";});//菜单编码,MENU+6位数字extend("menuCode", value =>{
let re =/^MENU\d{6}$/;if(re.test(value)){
returntrue;}return"{_field_}格式错误";});//菜单顺序,仅1-8位正整数extend("menuOrder", value =>{
let re =/^[1-9]\d{0,7}$/;if(re.test(value)){
returntrue;}return"{_field_}格式错误";});extend("eNameNum", value =>{
//let re = /(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]{8,12}/;let re =/^[a-zA-Z][\w\(\)\-]{6,32}$/;let reg =/^[A-Za-z]+$/;if(re.test(value)&&!reg.test(value)){
returntrue;}return"请输入正确的{_field_}(由6~32位大/小写字母,数字组合)";});//连接地址:http://* | https://*extend("httpUrl", value =>{
let re =/^(http|https):\/\/([\w.]+\/?)\S/;if(re.test(value)){
returntrue;}return"{_field_}格式错误";});//url地址,可以不用http开头extend("looseUrl", value =>{
let re =/^((http|https):\/\/)?([\w.]+\/?)\S/;if(re.test(value)){
returntrue;}return"{_field_}格式错误";});//8-32位带大小写,数字,特殊字符任意两种 (?!([^(0-9a-zA-Z)])+$)extend("checkPassword", value =>{
// let re = /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$).{8,32}$/;var re =/^(?![A-Z]+$)(?![a-z]+$)(?!\d+$)(?![\W_]+$)\S{8,32}$/;if(re.test(value)){
returntrue;}return"请输入8-32个字符,至少包含大写字母、小写字母、数字和特殊字符中的两种";});//不能输入中文extend("notChinese", value =>{
let re =/^[^\u4e00-\u9fa5]+$/;if(re.test(value)){
returntrue;}return"不能包含中文";});//由中文字符、英文字母、数字、中划线、下划线/.extend("mixedInput", value =>{
let re =/^[\u4e00-\u9fa5_a-zA-Z0-9-_.]+$/;if(re.test(value)){
returntrue;}return"请输入正确的{_field_}(由中文字符、英文字母、数字、中划线、下划线和点组成)";});// 由字母、汉字、“•”extend("pointStr", value =>{
let re =/^[\u4e00-\u9fa5_a-zA-Z_·]+$/;if(re.test(value)){
returntrue;}return"请输入正确的{_field_}(由字母、汉字和点组成)";});// 输入小数(默认是小数点前八位后两位)extend("decimalNum",(value, args)=>{
let pointS =Number(args[0])||7;let pointE =Number(args[1])||2;let reg =newRegExp(`^[+-]?(0|([1-9]\\d{0,${
pointS}}))(\\.\\d{1,${
pointE}})?$`,"g");let res = reg.test(value);if(!res){
return`最多输入小数点前${
pointS +1}位和小数点后${
pointE}位`;}returntrue;});// 数字限制extend("decimalLeval",(value, args)=>{
let min =Number(args[0]);let max =Number(args[1]);try{
let cur =Number(value);if(cur >= min && cur <= max){
returntrue;}return`只能输入${
min}到${
max}范围的值`;}catch(e){
return"请输入小数";}});// 数字限制2extend("decimalLeval2",(value, args)=>{
let min =Number(args[0]);let max =Number(args[1]);let len =0;if(value.toString().indexOf(".")>=0){
len = value.split(".")[1].length;}try{
let cur =Number(value);if(cur >= min && cur <= max && len <=4){
returntrue;}return`只能输入0.0001到99999999999999.9999范围的值`;}catch(e){
return"请输入小数";}});//PT- 广告位编码extend("adCode", value =>{
let re =/^PT\_[a-zA-Z0-9]{1,10}_[a-zA-Z0-9]{1,10}$/;if(re.test(value)){
returntrue;}return"请输入正确的{_field_}(格式:PT_index_banner)";});//数字 字母 100字以内extend("productNum", value =>{
let re =/^ZB[a-zA-Z0-9]{1,100}$/;if(re.test(value)){
returntrue;}return"请输入正确的{_field_}";});//只支持数字字母汉字extend("productName", value =>{
let re =/^[\u4E00-\u9FA5A-Za-z0-9]+$/;if(re.test(value)){
returntrue;}return"请输入正确的{_field_}(由数字、字母、汉字组成)";});extend("attrtNum", value =>{
let re =/[^\u4e00-\u9fa5]{1,100}$/;if(re.test(value)){
returntrue;}return"请输入正确的{_field_}(100以内,数字、字母、特殊字符组成)";});extend("strategyName", value =>{
let re =/^[a-zA-Z][0-9a-zA-Z]{0,100}$/;if(re.test(value)){
returntrue;}return"请输入正确的{_field_}(由字母开头,数字、字母组成)";});//属性名称 不允许特殊字符 18位以内///[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%&*()\-+={}|《》?:“”【】、;‘’,。、]/im;extend("accessControl", value =>{
// ^[a-zA-Z\u4e00-\u9fa5][\u4e00-\u9fa5a-zA-Z-z0-9]$let re =/^[a-zA-Z\u4e00-\u9fa5][\u4e00-\u9fa5a-zA-Z-z0-9]{0,49}$/;if(re.test(value)){
returntrue;}return"由中文、数字、字母组成,首字符不为数字";});//属性名称 不允许特殊字符 18位以内///[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%&*()\-+={}|《》?:“”【】、;‘’,。、]/im;extend("attrName", value =>{
let re =/^[\u4e00-\u9fa5a-zA-Z-z0-9]+$/im;if(re.test(value)){
returntrue;}return"请输入正确的{_field_}(由中文、数字、字母组成)";});// 联系电话 同时校验手机号和座机号extend("telephone", value =>{
// let re = /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/im;let re =/^[\(\)\s0-9-\+]{4,20}$/;if(re.test(value)){
returntrue;}return"请输入正确的联系电话";// return "请输入正确的{_field_}(手机或座机,如 130******** 或 010-********)";});extend("selectRequired",{
...required,
message:"请选择{_field_}"});extend("productAreas",{
...required,
message:"请选择地区产品"});extend("selectMin",(value, args)=>{
if(value.length >0){
returntrue;}return`请至少选择${
args[0]}项`;});//最低折扣 0-10 精确到小数点后一位 的正则 ^(\d|10)(\.\d)?$extend("discount", value =>{
let re =/^\+?(?:\d(?:\.\d)?|10(?:\.0)?)$/;if(re.test(value)){
returntrue;}return"请输入0-10之内的数字,精确到小数点后1位";});//最低折扣 0-10 精确到小数点后一位 的正则 ^(\d|10)(\.\d)?$extend("setDiscount",{
validate(value, bpdata){
if(value =="0"|| value >"1"){
return"请输入正确的折扣";}if(value ==""|| value ==null){
return"请输入折扣";}if(bpdata[0]=="undefined"|| bpdata[0]==""){
bpdata[0]=0;}if(value >0&& value < bpdata[0]){
return"客户云厂商折扣不能低于伙伴最低折扣";}let re =/^\d+(\.\d{1,2})?$/;if(re.test(value)){
returntrue;}if(!isNaN(value)&&typeof value ==="number"){
returntrue;}return"请输入正确的折扣";}});extend("requiredData",{
validate(value, discount){
if(discount[0]=="1"){
return;}}});//1-28的数字extend("twoNum", value =>{
let re =/^[1-9]$|^[1][0-9]$|^[2][0-8]$/;if(re.test(value)){
returntrue;}return"请输入1-28的数字";});//1-28的数字extend("orderRule", value =>{
let re =/^[0-9a-zA-Z,]*$/g;if(re.test(value)){
returntrue;}return"请输入正确的{_field_}格式";});//1-999的整数extend("nineNum", value =>{
let re =/^\+?[1-9]{1}[0-9]{0,2}\d{0,0}$/;if(re.test(value)){
returntrue;}return"请输入1-999的整数";});//0.01-9999999.99的数字extend("ninesNum", value =>{
// let re = /^([1-9]\d{0,3}$)|(^0\.\d{1,2}$)|(^[1-9]\d{0,3}\.\d{2})$/;// if (re.test(value)) {
// return true;// }// return "请输入0.01-9999999.99的数字";// var reg = /\d+(\.\d{0,2})?/if(value.indexOf(".")!=-1){
let arr = value.split(".");if(arr[1].length >2){
return"不能超过两位小数";}}if(value <=9999999.99&& value >=0.01){
returntrue;}else{
return"请输入0.01-9999999.99的数字";}});// 比较时间大小extend("after",{
validate(value, _a){
var target = _a.target;if(!!!value ||!!!target)returntrue;try{
if(newDate(value)<newDate(target)){
return`{_field_}不能早于${
_a.field}`;}else{
returntrue;}}catch(error){
return"请输入正确的时间格式";}},
params:[{
name:"target",
isTarget:true},{
name:"field"}]});extend("before",{
validate(value, _a){
var target = _a.target;if(!!!value ||!!!target)returntrue;try{
if(newDate(value)>newDate(target)){
return`{_field_}不能晚于${
_a.field}`;}else{
returntrue;}}catch(error){
return"请输入正确的时间格式";}},
params:[{
name:"target",
isTarget:true},{
name:"field"}]});extend("postattrName", value =>{
let re =/^[\u4e00-\u9fa5a-zA-Z-z0-9(\)(\)[\]<\>_{\}]+$/im;if(re.test(value)){
returntrue;}return"请输入正确的{_field_}(由中文、数字、字母组成)";});// 拨款/回收金额 校验 ---金额不能超出余额extend("recycleamount",{
validate(value, args =[0.01,0.01]){
let amount = args[0],
brokerAmount = args[1];if(Number(value)>Number(amount)){
return"拨款金额不能大于可拨款额度";}if(Number(value)>Number(brokerAmount)){
return"拨款金额不能大于客户Broker余额";}else{
returntrue;}}});extend("recoveryamount",{
validate(value, args =[0.01]){
let amount = args[0];if(Number(value)>Number(amount)){
return"回收金额不能大于账户余额";}else{
returntrue;}}});// 最大数字extend("maxNum",{
validate(value =0, args =0){
if(!value ||isNaN(value)){
return"{_field_}格式不正确";}if(parseFloat(value)>parseFloat(args)){
return`{_field_}不能超过${
args}`;}returntrue;}});// 最小数字extend("minNum",{
validate(value =0, args =0){
if(!value ||isNaN(value)){
return"{_field_}格式不正确";}if(parseFloat(value)<parseFloat(args)){
return`{_field_}不能低于${
args}`;}returntrue;}});// 金额 有效位数传参,默认2位extend("money",{
validate(value, args =[2,0,99999999.99]){
// args[0] 保留位数// args[1] 最小值// args[2] 最大值let digit = args[0]||2;let minNum = args[1]||0;let maxNum = args[2]||99999999.99;if(isNaN(Number(value))){
return`请输入${
minNum}~${
maxNum}的数字`;}let re =newRegExp(`^(0|([1-9][0-9]*)|([0]\.[0-9]{1,2})|([1-9][0-9]*\.[0-9]{1,${
digit}}))$`);if(digit =="0"){
re =newRegExp(`^[1-9][0-9]*$`);}if(re.test(value)){
if(parseFloat(value)< minNum ||parseFloat(value)> maxNum){
return`请输入${
minNum}~${
maxNum}的数字`;}else{
returntrue;}}else{
let valStr = value +"";if(
valStr.indexOf(".")!==-1&&
valStr.slice(valStr.indexOf(".")+1).length > digit
){
return`小数点后仅支持两位有效位数`;}return`请输入${
minNum}~${
maxNum}的数字`;}}});//数据权限包名称 4-20位,输入类型不包含除“下划线”、“中划线”、“中英文小括号/中括号”以外的特殊字符。extend("dataName", value =>{
let re =/^[\u4e00-\u9fa5_a-zA-Z0-9-_.\\(\\)\\【\\】\\(\\)\[.*\]]+$/;if(re.test(value)){
returntrue;}return"由中文字符、英文字母、数字、中划线、下划线和中英文小括号/中括号组成";});// 最小值不能大于最大值extend("mintomax",(value, args)=>{
if(args[0]==""&& args[1]){
return`请输入最小值`;}if(args[1]==""&& args[0]){
return`请输入最大值`;}let min =Number(args[0]);let max =Number(args[1]);if(min >= max){
return`最小值不能大于最大值`;}else{
returntrue;}});// IP校验extend("IP", value =>{
let re =/^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])(\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)){2}(\.(1\d{2}|2[0-4]\d|25[0-4]|[1-9]\d|[1-9]))$/;if(re.test(value)){
returntrue;}return"请输入正确的IP";});//数据权限包名称 4-20位,输入类型不包含除“下划线”、“中划线”、“中英文小括号/中括号”以外的特殊字符。extend("dataName", value =>{
let re =/^[\u4e00-\u9fa5_a-zA-Z0-9-_.\\(\\)\\【\\】\\(\\)\[.*\]]+$/;if(re.test(value)){
returntrue;}return"由中文字符、英文字母、数字、中划线、下划线和中英文小括号/中括号组成";});extend("phoneEmailRule",{
...required,
message:"手机号/邮箱至少填一项"});// 由字母汉字组成{6,18}extend("alphaChinese", value =>{
let re =/^[\u4e00-\u9fa5a-zA-Z-z]+$/im;if(re.test(value)){
returntrue;}return"由字母汉字组成";});//由数字+字母 组成 [A-Za-z][A-Za-z0-9] 字母开头extend("appCode", value =>{
let re =/^(?!^\d+$)(?!^[a-zA-Z]+$)[0-9a-zA-Z]$/;// let re= /^\d{3}$/;if(re.test(value)){
returntrue;}return"请输入正确的{_field_}(英文字母开头,由4~32位大/小写字母,数字组合)";});// 并发量extend("concurrency",{
validate(value, data){
if(value){
if(!data[0]){
return"请选择单位";}}if(value && data[0]){
if(value >1000){
return"并发量不得大于1000";}}returntrue;}});// 并发量2extend("concurrency2",{
validate(value, data){
console.log(value, data);if(value){
if(data =="null"||!data){
return"请输入并发量";}}returntrue;}});//配额extend("appQuota", value =>{
if(value >1000){
return"配额不得大于1000";}returntrue;});//字母小写extend("letters", value =>{
let re =/^[a-zA-Z][a-zA-Z_]{1,31}$/;if(re.test(value)){
returntrue;}return"请输入英文字母";});//1-100的整数(用于api管理,后带%)extend("percentage", value =>{
let re =/^(1|([1-9]\d{0,1})|100)$/;//if(re.test(value)){
returntrue;}return"请输入1-100的整数";});//只支持数字字母汉字extend("productNames", value =>{
let re =/^[\u4E00-\u9FA5A-Za-z0-9+*]+$/;if(re.test(value)){
returntrue;}return"请输入正确的{_field_}(由*、数字、字母、汉字组成)";});//api管理--api名称extend("apiNames", value =>{
let re =/^[\u4E00-\u9FA50-9a-zA-Z]{1,49}$/;if(re.test(value)){
returntrue;}return"请输入正确的{_field_}(由汉字、数字、字母组成)";});//api管理--转义后参数extend("apiSerParamNames", value =>{
let re =/^[a-zA-Z]{1,32}$/;if(re.test(value)){
returntrue;}return"请输入正确的{_field_}(由英文字母组成)";});//api管理-参数名extend("parameters", value =>{
let re =/^[a-zA-Z][a-zA-Z_]{1,32}$/;if(re.test(value)){
returntrue;}return"请输入正确的{_field_}(由字母开头,英文和下划线组成)";});//api管理-异常编码extend("validatePhones", value =>{
let re =/^[a-zA-Z][a-zA-Z0-9]{0,50}$/;if(re.test(value)){
returntrue;}return"请输入正确的{_field_}(由字母开头,英文和数字组成)";});// 只支持字母和数字extend("LettersandNumbers", value =>{
let re =/^[A-Za-z0-9]+$/;if(re.test(value)){
returntrue;}return"请输入正确的{_field_}(由数字、字母组成)";});//由字母组成 具体限制到{args}位extend("letterNumConfine",{
validate(value, args){
let re =/^[A-Za-z]+$/;if(!re.test(value)){
return`请输入正确的{_field_}(由字母组成)`;}if(value.length != args){
return`只能输入${
args}位字母`;}returntrue;}});// extend("LimitingUnderline", value => {
// let re = /^[\u4e00-\u9fa5-a-zA-Z0-9-@\!\#\¥\%\.\&\*\(\)\…\{\}\[\]\.\,\<\>\:\;\|\"]+$/;// if (re.test(value)) {
// return true;// }// return "请输入正确的{_field_}(由汉字、字母、数字、除下划线外组成)";// });// 匹配出下划线以外所有的字符extend("LimitingUnderline", value =>{
let re =/_/;if(!re.test(value)){
returntrue;}return"请输入正确的{_field_}(不包含下划线)";});//输入框不为空extend("requiredss",{
...required,
message:"请输入异常内容"});//不能以-+=@开头extend("customName", value =>{
let re =/^(?![-=+@])/;if(re.test(value)){
returntrue;}return"不能以-=+@开头";});//且不能是纯特殊字符、纯数字、支持汉子、英文字母extend("regex", value =>{
let re =/^[\u4e00-\u9fa5a-zA-Z0-9]*([a-zA-Z][0-9][\u4e00-\u9fa5]|[\u4e00-\u9fa5a-zA-Z])[\u4e00-\u9fa5a-zA-Z0-9]*$/;if(re.test(value)){
returntrue;}return"不能输入纯数字、纯特殊字符,支持汉字、英文字母";});extend("backPaymentCode", value =>{
let re =/^[A-z0-9\-\.]{0,64}$/;if(re.test(value)){
returntrue;}return"支持0-64位数字、字母、“-”“.”";});//百分比extend("percent", value =>{
let re =/^(1|([1-9]\d{0,1})|100)$/;if(re.test(value)){
returntrue;}return"请输入1-100的整数";});// 0-32的数字extend("percents", value =>{
let re =/^([0-9]|[1-2][0-9]|3[0-2])$/;if(re.test(value)){
returntrue;}return"请输入0-32的数字";});//机会点名称extend("chanceName", value =>{
let re =/^[\u4e00-\u9fa5a-zA-Z0-9]{4,16}$/;if(re.test(value)){
returntrue;}return"{_field_}仅支持4-16位数字、字母、汉字";});//合同编号extend("contractCode", value =>{
let re =/^[a-zA-Z0-9\-]{1,127}$/;if(re.test(value)){
returntrue;}return"{_field_}仅支持数字、字母、短连接线,最大可输入127位";});//合同名称extend("contractName", value =>{
let re =/^[\u4e00-\u9fa5a-zA-Z0-9]{1,127}$/;if(re.test(value)){
returntrue;}return"{_field_}仅支持数字、字母、汉字,最大可输入127位";});