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 相关文章推荐
最佳的addEvent事件绑定是怎样诞生的
Oct 24 Javascript
文本框输入时 实现自动提示(像百度、google一样)
Apr 05 Javascript
js/jQuery对象互转(快速操作dom元素)
Feb 04 Javascript
js日期对象兼容性的处理方法
Jan 28 Javascript
Javascript实现禁止输入中文或英文的例子
Dec 09 Javascript
深入理解Java线程编程中的阻塞队列容器
Dec 07 Javascript
JavaScript计划任务后台运行的方法
Dec 18 Javascript
利用原生JS自动生成文章标题树的实例
Aug 22 Javascript
vue过渡和animate.css结合使用详解
Jun 14 Javascript
jQuery初级教程之网站品牌列表效果
Aug 02 jQuery
使用puppeteer爬取网站并抓出404无效链接
Dec 20 Javascript
vue-element-admin项目导入和导出的实现
May 21 Vue.js
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 CKEditor 上传图片实现代码
2009/11/06 PHP
PHP命名空间(Namespace)的使用详解
2013/05/04 PHP
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
关于laravel5.5的定时任务详解(demo)
2019/10/23 PHP
javascript完美拖拽的实现方法
2013/09/29 Javascript
jQuery选择器全面总结
2014/01/06 Javascript
jQuery插件开发的两种方法及$.fn.extend的详解
2014/01/16 Javascript
async/await与promise(nodejs中的异步操作问题)
2017/03/03 NodeJs
Node.js 8 中的 util.promisify的详解
2017/06/12 Javascript
利用nginx + node在阿里云部署https的步骤详解
2017/12/19 Javascript
Vue单页面应用保证F5强刷不清空数据的解决方案
2018/01/31 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
详细教你微信公众号正文页SVG交互开发技巧
2019/07/25 Javascript
解决vue项目F5刷新mounted里的函数不执行问题
2019/11/05 Javascript
解决Layui 表格自适应高度的问题
2019/11/15 Javascript
JS数组方法reduce的用法实例分析
2020/03/03 Javascript
Linux系统上Nginx+Python的web.py与Django框架环境
2015/12/25 Python
Python3操作SQL Server数据库(实例讲解)
2017/10/21 Python
TensorFlow搭建神经网络最佳实践
2018/03/09 Python
pandas通过索引进行排序的示例
2018/11/16 Python
基于TensorBoard中graph模块图结构分析
2020/02/15 Python
Python 定义只读属性的实现方式
2020/03/05 Python
详解Java中一维、二维数组在内存中的结构
2021/02/11 Python
CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集
2017/08/18 HTML / CSS
Public Desire美国/加拿大:全球性的在线鞋类品牌
2018/12/17 全球购物
现代生活方式的家具和装饰:Dot & Bo
2018/12/26 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
伊莱克斯(Electrolux)俄罗斯网上商店:瑞典家用电器品牌
2021/01/23 全球购物
控制工程专业个人求职信
2013/09/25 职场文书
校三好学生主要事迹
2014/01/11 职场文书
《奇妙的国际互联网》 教学反思
2014/02/25 职场文书
农村婚庆司仪主持词
2014/03/15 职场文书
剪彩仪式主持词
2014/03/19 职场文书
交通事故私了协议书
2014/04/16 职场文书
2015年语文教研组工作总结
2015/05/23 职场文书
解决python3安装pandas出错的问题
2021/05/20 Python