Angular短信模板校验代码

本文介绍了一种用于验证短信模板内容的方法,并实现从模板中提取合法的英文参数。通过正则表达式匹配${}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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、最终效果

file

file

个人博客 蜗牛

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜗牛!Destiny

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值