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 相关文章推荐
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
Jan 27 Javascript
javascript创建和存储cookie示例
Jan 07 Javascript
jQuery中children()方法用法实例
Jan 07 Javascript
JS中字符串trim()使用示例
May 26 Javascript
AngularJS 避繁就简的路由
Jul 01 Javascript
针对BootStrap中tabs控件的美化和完善(推荐)
Jul 06 Javascript
详解handlebars+require基本使用方法
Dec 21 Javascript
详解Angular.js中$http拦截器的介绍及使用
Jul 04 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
May 08 Javascript
Next.js实现react服务器端渲染的方法示例
Jan 06 Javascript
vue插槽slot的理解和使用方法
Apr 03 Javascript
在vue中使用jsx语法的使用方法
Sep 30 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 strncasecmp字符串比较的小技巧
2011/01/04 PHP
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
php实现encode64编码类实例
2015/03/24 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
2018/05/28 PHP
用javascript实现画板的代码
2007/09/05 Javascript
javascript 模式设计之工厂模式学习心得
2010/04/27 Javascript
JSQL SQLProxy 的 php 版本代码
2010/05/05 Javascript
基于JQuery的一句代码实现表格的简单筛选
2010/07/26 Javascript
De facto standard 世界上不可思议的事实标准
2010/08/29 Javascript
jQuery实现简单二级下拉菜单
2015/04/12 Javascript
简单理解vue中track-by属性
2016/10/26 Javascript
详解vue之页面缓存问题(基于2.0)
2017/01/10 Javascript
Angular之指令Directive用法详解
2017/03/01 Javascript
vue基于mint-ui实现城市选择三级联动
2020/06/30 Javascript
create-react-app使用antd按需加载的样式无效问题的解决
2019/02/26 Javascript
Layui事件监听的实现(表单和数据表格)
2019/10/17 Javascript
JavaScript实现轮播图片完整代码
2020/03/07 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
vue点击标签切换选中及互相排斥操作
2020/07/17 Javascript
Python使用scrapy抓取网站sitemap信息的方法
2015/04/08 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
2017/08/30 Python
Tensorflow的可视化工具Tensorboard的初步使用详解
2018/02/11 Python
Python使用进程Process模块管理资源
2020/03/05 Python
详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
2020/04/01 Python
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
HTML5实现WebSocket协议原理浅析
2014/07/07 HTML / CSS
橄榄树药房:OLIVEDA
2019/09/01 全球购物
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
学生处主任岗位职责
2013/12/01 职场文书
办公室保洁员岗位职责
2013/12/02 职场文书
校本教研工作方案
2014/01/14 职场文书
师德先进个人事迹材料
2014/12/19 职场文书
个人廉洁自律总结
2015/03/06 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
OpenCV-Python实现怀旧滤镜与连环画滤镜
2021/06/09 Python
python中Matplotlib绘制直线的实例代码
2021/07/04 Python