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 相关文章推荐
firefox中JS读取XML文件
Dec 21 Javascript
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮
Oct 11 Javascript
js图片预加载示例
Apr 30 Javascript
在jQuery中处理XML数据的大致方法
Aug 14 Javascript
jQuery异步提交表单的两种方式
Sep 13 Javascript
详解如何配置vue-cli3.0的vue.config.js
Aug 23 Javascript
在vue项目中引入高德地图及其UI组件的方法
Sep 04 Javascript
JS div匀速移动动画与变速移动动画代码实例
Mar 26 Javascript
nodemon实现Typescript项目热更新的示例代码
Nov 19 Javascript
微信小程序修改数组长度的问题的解决
Dec 17 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
Jul 12 Javascript
详解webpack的clean-webpack-plugin插件报错
Oct 16 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 explode函数实例代码
2012/02/27 PHP
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
Laravel手动分页实现方法详解
2016/10/09 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
2017/06/17 PHP
JQuery 学习笔记 选择器之五
2009/07/23 Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
2013/06/06 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
2014/06/07 Javascript
Node.js实现在目录中查找某个字符串及所在文件
2014/09/03 Javascript
jQuery读取XML文件内容的方法
2015/03/09 Javascript
优化RequireJS项目的相关技巧总结
2015/07/01 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
2016/02/06 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
浅谈js基本数据类型和typeof
2016/08/09 Javascript
js实现购物车功能
2018/06/12 Javascript
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
javascript function(函数类型)使用与注意事项小结
2019/06/10 Javascript
vue.js 2.0实现简单分页效果
2019/07/29 Javascript
浅谈vue项目,访问路径#号的问题
2020/08/14 Javascript
微信小程序连续签到7天积分获得功能的示例代码
2020/08/20 Javascript
[42:22]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第一局
2016/02/27 DOTA
python中map、any、all函数用法分析
2015/04/21 Python
python贪婪匹配以及多行匹配的实例讲解
2018/04/19 Python
对python读取CT医学图像的实例详解
2019/01/24 Python
python颜色随机生成器的实例代码
2020/01/10 Python
python中用ctypes模拟点击的实例讲解
2020/11/26 Python
Python jieba库分词模式实例用法
2021/01/13 Python
基于css3的属性transition制作菜单导航效果
2015/09/01 HTML / CSS
国际化的太阳镜及太阳镜配件零售商:Sunglass Hut
2016/07/26 全球购物
VICHY薇姿英国官网:全球专业敏感肌护肤领先品牌
2017/07/04 全球购物
国际旅客访问北美最大的汽车租赁提供商:Alamo Rent A Car
2018/06/13 全球购物
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
面向对象编程的优势是什么
2015/12/17 面试题
光电信息专业应届生求职信
2013/10/07 职场文书
党员群众路线承诺书
2014/05/20 职场文书
大班亲子运动会方案
2014/06/10 职场文书
Python加密技术之RSA加密解密的实现
2022/04/08 Python