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 相关文章推荐
定义select的边框颜色
Apr 28 Javascript
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
Dec 11 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
Nov 15 Javascript
jquery获取css中的选择器(实例讲解)
Dec 02 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
Aug 25 Javascript
详解vue过滤器在v2.0版本用法
Jun 01 Javascript
ES6 中可以提升幸福度的小功能
Aug 06 Javascript
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
Aug 20 Javascript
layui点击按钮页面会自动刷新的解决方案
Oct 25 Javascript
微信浏览器左上角返回按钮监听的实现
Mar 04 Javascript
JS中间件设计模式的深入探讨与实例分析
Apr 11 Javascript
vue ref如何获取子组件属性值
Mar 31 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 增加了对 .ZIP 文件的读取功能
2006/10/09 PHP
深入PHP nl2br()格式化输出的详解
2013/06/05 PHP
对laravel in 查询的使用方法详解
2019/10/09 PHP
JavaScript 继承详解(三)
2009/07/13 Javascript
多个datatable共存造成多个表格的checkbox都被选中
2013/07/11 Javascript
判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
2013/11/07 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
基于JavaScript实现右键菜单和拖拽功能
2016/11/28 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
2016/11/30 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
node.js入门教程之querystring模块的使用方法
2017/02/27 Javascript
用JS编写一个函数,返回数组中重复出现过的元素(实例)
2017/09/14 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
2017/11/01 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
2018/04/22 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
利用原生JS实现data方法示例代码
2019/05/28 Javascript
纯 JS 实现放大缩小拖拽功能(完整代码)
2019/11/25 Javascript
关于vue属性使用和不使用冒号的区别说明
2020/10/22 Javascript
Python使用微信SDK实现的微信支付功能示例
2017/06/30 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
Python 窗体(tkinter)按钮 位置实例
2019/06/13 Python
详解Python3定时器任务代码
2019/09/23 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
Python如何定义有可选参数的元类
2020/07/31 Python
Python自动化之UnitTest框架实战记录
2020/09/08 Python
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
马来西亚在线购物:POPLOOK.com
2019/12/09 全球购物
新郎新娘婚礼答谢词
2014/01/11 职场文书
新员工欢迎词
2014/01/12 职场文书
幼儿园综治宣传月活动总结
2015/05/07 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
浅谈JS的原型和原型链
2021/06/04 Javascript
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL
python使用torch随机初始化参数
2022/03/22 Python