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 相关文章推荐
在网页中使用document.write时遭遇的奇怪问题
Aug 24 Javascript
CSS鼠标响应事件经过、移动、点击示例介绍
Sep 04 Javascript
PHP开发者必须掌握的6个关键字
Apr 14 Javascript
JS动画效果打开、关闭层的实现方法
May 09 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
Jul 29 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
Nov 25 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
Apr 27 Javascript
使用 Vue.js 仿百度搜索框的实例代码
May 09 Javascript
vue2.0父子组件间传递数据的方法
Aug 16 Javascript
jquery.pagination.js分页使用教程
Oct 23 jQuery
javaScript 实现重复输出给定的字符串的常用方法小结
Feb 20 Javascript
15个值得收藏的JavaScript函数
Sep 15 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
给多个地址发邮件的类
2006/10/09 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
2015/01/04 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
PHP中如何使用session实现保存用户登录信息
2015/10/20 PHP
PHP模块化安装教程
2016/06/01 PHP
js文件Cookie存取值示例代码
2014/02/20 Javascript
jQuery实现ichat在线客服插件
2014/12/29 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
2016/04/05 Javascript
jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
2016/07/01 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
基于JavaScript中字符串的match与replace方法(详解)
2017/12/04 Javascript
JS实现利用两个队列表示一个栈的方法
2017/12/13 Javascript
彻底弄懂 JavaScript 执行机制
2018/10/23 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
解决layer图标icon不加载的问题
2019/09/04 Javascript
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
vue ajax 拦截原理与实现方法示例
2019/11/29 Javascript
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
pygame学习笔记(3):运动速率、时间、事件、文字
2015/04/15 Python
python简单的函数定义和用法实例
2015/05/07 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
2017/07/22 Python
详解python的ORM中Pony用法
2018/02/09 Python
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
Python搭建代理IP池实现获取IP的方法
2019/10/27 Python
pytorch 数据处理:定义自己的数据集合实例
2019/12/31 Python
解决python父线程关闭后子线程不关闭问题
2020/04/25 Python
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
护理专科毕业推荐信
2013/11/10 职场文书
企业厂长岗位职责
2013/12/17 职场文书
旅游活动总结
2014/08/27 职场文书
弄虚作假心得体会
2014/09/10 职场文书
美丽人生观后感
2015/06/03 职场文书
《槐乡的孩子》教学反思
2016/02/20 职场文书
大学生自我鉴定怎么写
2019/05/07 职场文书
mybatis源码解读之executor包语句处理功能
2022/02/15 Java/Android