Angular短信模板校验代码


Posted in Javascript onSeptember 23, 2020

1、短信模板内容

验证码 ${username} 12345
验证码 ${username} 12345
验证码 ${username} 12345

从代码中提取 username, 并判断验证码 username中只存在英文字母

2、内容校验,提取模板中${}的内容并且,内容只能使用英文

smsTemplateContentChange(value){
  // 短信模板内容 校验
  const error = this.smsTemplateForm.get('templateContent').getError('pattern');
  if (error){
   return;
  }else{
   this.smsTemplateForm.get('templateContent').setErrors(null);
  }
  const reg = /\$\{((?!\{).)*\}/g;
  const matchStr = value.match(reg);
  const resultList = new Set();
  this.paramsList = new Set();
  const pattern = '^[a-zA-Z]{1,}$';
  const regex = new RegExp(pattern);
  let isError = false;
  if (matchStr){
   matchStr.forEach((item: string) => {
    const result = item.replace('${', '').replace('}', '');
    if (!result.match(regex)){
     isError = true;
    }
    resultList.add(result);
   });
   if (isError){
    // 设置错误信息
    this.smsTemplateForm.get('templateContent').setErrors({errorParams: '参数只能使用英文'});
   }else{
    this.paramsList = resultList;
   }

  }
  // console.log(value.match(reg).replace('${', '').replace('}', ''));

 }

3、前端html

<se label="短信模板" [error]="{
  required: '请输入短信模板',
  pattern: '最大长度不超过200!',
  errorParams: '${}参数中只能使用英文'}">
   <textarea formControlName="xxx" [(ngModel)]="smsTemplateVo.xxx"
        (ngModelChange)="smsTemplateContentChange(smsTemplateVo.xxx)" nz-input required></textarea>
   <div ><strong>提取可用参数:</strong><nz-tag *ngFor="let tag of paramsList" nzColor="default">{{tag}}</nz-tag></div>
  </se>
 

4、最终效果

Angular短信模板校验代码

Angular短信模板校验代码

到此这篇关于Angular短信模板校验代码的文章就介绍到这了,更多相关Angular短信模板校验内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
javascript判断用户浏览器插件安装情况的代码
Jan 01 Javascript
Jquery对select的增、删、改、查操作
Feb 06 Javascript
JS实现跟随鼠标闪烁转动色块的方法
Feb 26 Javascript
javascript作用域问题实例分析
Jul 13 Javascript
javascript类型系统 Window对象学习笔记
Jan 07 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
May 19 Javascript
jQuery表单验证之密码确认
May 22 jQuery
vue初尝试--项目结构(推荐)
Jan 30 Javascript
mpvue开发音频类小程序踩坑和建议详解
Mar 12 Javascript
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
May 13 Javascript
Vue+Openlayers自定义轨迹动画
Sep 24 Javascript
JavaScript实现九宫格拖拽效果
Jun 28 Javascript
JavaScript实现单点登录的示例
Sep 23 #Javascript
Vue+Java+Base64实现条码解析的示例
Sep 23 #Javascript
通过实例解析jQ Ajax操作相关原理
Sep 23 #Javascript
js实现三角形粒子运动
Sep 22 #Javascript
js操作两个json数组合并、去重,以及删除某一项元素
Sep 22 #Javascript
js实现删除json中指定的元素
Sep 22 #Javascript
vue使用canvas实现移动端手写签名
Sep 22 #Javascript
You might like
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
2011/11/02 PHP
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
php邮件发送的两种方式
2020/04/28 PHP
jquery+json 通用三级联动下拉列表
2010/04/19 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件。
2011/12/26 Javascript
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
js substring从右边获取指定长度字符串(示例代码)
2013/12/23 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
JavaScript中原型和原型链详解
2015/02/11 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
解决JS请求服务器gbk文件乱码的问题
2015/10/16 Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
2016/05/07 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
js学习阶段总结(必看篇)
2016/06/16 Javascript
Vue.js bootstrap前端实现分页和排序
2017/03/10 Javascript
Jquery-data的三种用法
2017/04/18 jQuery
Ionic2调用本地SQlite实例
2017/04/22 Javascript
js+html5实现页面可刷新的倒计时效果
2017/07/15 Javascript
JS实现浏览上传文件的代码
2017/08/23 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
微信小程序实现图片压缩
2019/12/03 Javascript
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
Python中格式化format()方法详解
2017/04/01 Python
解决Python2.7读写文件中的中文乱码问题
2018/04/12 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
Python迭代器模块itertools使用原理解析
2019/12/11 Python
python编写微信公众号首图思路详解
2019/12/13 Python
python从内存地址上加载python对象过程详解
2020/01/08 Python
python解释器安装教程的方法步骤
2020/07/02 Python
Chicco婴儿用品美国官网:汽车座椅、婴儿推车、高脚椅等
2018/11/05 全球购物
Hoka One One法国官网:美国专业跑鞋品牌
2018/12/29 全球购物
最新教师自我评价分享
2013/11/12 职场文书
粗加工管理制度
2014/02/04 职场文书
教师爱岗敬业演讲稿
2014/05/05 职场文书
介绍信的写法
2015/01/31 职场文书
努力学习保证书
2015/02/26 职场文书