概述
自己配置订阅消息模板,如果参数格式不正确,会导致订阅消息发不出去,所以在创建模板的时候需要校验参数格式
订阅通知参数值内容限制说明:微信官方文档
创建模板:
代码:
<script>
const validateRules = {
letter: /^[a-zA-Z]+$/,
symbol: /^[ '.,:;*?~`!@#$%^&_+=)(<>{}-][/\\"|]+$/,
character: /^[a-zA-Z0-9 '.,:;*?~`!@#$%^&_+=)(<>{}-][/\\"|]+$/,
/* eslint-disable max-len */
datetime: /^((((1[6-9]|[2-9]d)d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]d|3[01]))|(((1[6-9]|[2-9]d)d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]d|30))|(((1[6-9]|[2-9]d)d{2})-0?2-(0?[1-9]|1d|2[0-8]))|(((1[6-9]|[2-9]d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?d):[0-5]?d$/,
/* eslint-disable max-len */
date: /^((((1[6-9]|[2-9]d)d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]d|3[01]))|(((1[6-9]|[2-9]d)d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]d|30))|(((1[6-9]|[2-9]d)d{2})-0?2-(0?[1-9]|1d|2[0-8]))|(((1[6-9]|[2-9]d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/,
time: /^(20|21|22|23|[0-1]?d):[0-5]?d$/,
amount: /^(¥|¥|$|€|R$|лв|£|S$|ARS$|₫){1}(d+(.d+)?)+$/,
mobile: /^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])d{8}$/,
/* eslint-disable max-len */
tel: /^((+d{2}-)|(d{2}-))?((d{7,8})|(d{4}|d{3})-(d{7,8})|(d{4}|d{3})-(d{7,8})-(d{4}|d{3}|d{2}|d{1})|(d{7,8})-(d{4}|d{3}|d{2}|d{1}))$/,
carNumber: /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{5}[A-Z0-9挂学警港澳]{1}$/,
number: /d/,
chinaAndEng: /^[a-zA-Zu4e00-u9fa5]+$/,
phrase: /^[u4e00-u9fa5]+$/,
};
methods: {
validateFormat(key, value, cb) {
let fieldVal = value;
if (!fieldVal) {
cb('此项必填');
return;
}
let isValid = false;
switch (key) {
case 'thing':
isValid = fieldVal.length <= 20;
break;
case 'number':
isValid = Number(fieldVal) && fieldVal.length <= 32;
break;
case 'letter':
isValid = validateRules.letter.test(fieldVal) && fieldVal.length <= 32;
break;
case 'symbol':
isValid = validateRules.symbol.test(fieldVal) && fieldVal.length <= 5;
break;
case 'character_string':
isValid = validateRules.character.test(fieldVal) && fieldVal.length <= 32;
break;
case 'time':
case 'date':
fieldVal = fieldVal.split('~');
for (let val of fieldVal) {
val = val.replaceAll('年', '-')
.replaceAll('月', '-')
.replaceAll('日', '');
if ((key === 'date' && !(validateRules.date.test(val) || validateRules.datetime.test(val)))
|| (key === 'time' && !(validateRules.time.test(val) || validateRules.datetime.test(val)))) {
cb('请按照要求输入');
return;
}
}
isValid = true;
break;
case 'amount':
fieldVal = fieldVal.replace('元', '');
isValid = validateRules.amount.test(fieldVal) && fieldVal.length <= 10;
break;
case 'phone_number':
isValid = (validateRules.mobile.test(fieldVal) || validateRules.tel.test(fieldVal)) && fieldVal.length <= 17;
break;
case 'car_number':
isValid = validateRules.carNumber.test(fieldVal) && fieldVal.length <= 8;
break;
case 'name':
isValid = !validateRules.number.test(fieldVal)
&& ((validateRules.phrase.test(fieldVal) && fieldVal.length <= 10)
|| (validateRules.letter.test(fieldVal) && fieldVal.length <= 20)
|| (validateRules.chinaAndEng.test(fieldVal) && fieldVal.length <= 10));
break;
case 'phrase':
isValid = validateRules.phrase.test(fieldVal) && fieldVal.length <= 5;
break;
default:
break;
}
if (!isValid) {
cb('请按照要求输入');
return;
}
cb();
},
},
</script>
最后
以上就是文艺黑米为你收集整理的微信小程序 公众号 订阅消息 模板 正则 参数校验的全部内容,希望文章能够帮你解决微信小程序 公众号 订阅消息 模板 正则 参数校验所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复