angular 输入校验excel文件名不允许有的字符

背景:创建项目名的时候,需要校验作为excel文件名不允许有的字符

代码:

ts

 regTest = '项目名称不可包含以下字符:' + '\\' + ' / : * ? " < > |';

 this.validateForm = this.fb.group({
      professionalName: ['', [Validators.required, this.validateProjectName.bind(this)]],
      description: ['']
    });

  private validateProjectName(c: FormControl) {
    if (!c.value) {
      return null;
    }
    const reg = /[\\\\`|*<>?:".\/;[\]]/im;
    return reg.test(c.value) ? { checkIfExistsError: { valid: false } } : null;
  }


html:

 <form nz-form nzLayout="vertical" [formGroup]="validateForm" (ngSubmit)="submit()">
      <nz-form-item>
        <nz-form-label>项目名称</nz-form-label>
        <nz-form-control [nzErrorTip]="userErrorTpl">
          <input nz-input formControlName="professionalName" placeholder="请输入(必填)" nzSize="large" minlength="1" maxlength="32" />
          <ng-template #userErrorTpl let-control>
            <ng-container *ngIf="control.errors.required">必填项</ng-container>
            <ng-container *ngIf="control.errors.checkIfExistsError">{{ regTest }}</ng-container>
          </ng-template>
        </nz-form-control>
      </nz-form-item>
</form>

注意点:

匹配反向斜杠'\'的时候 => 要用四个反斜杠

分析一下“\\\\”,第一个斜杠是转义符,第二个斜杠是斜杠本身,第三个斜杠是转义符,第四个斜杠是斜杠本身。

有2点要清楚:

1.字符串里面表示斜杠就需要两个斜杠如“\\”

2.正则表达式里的斜杠需要转意,是用“\\”标示。

这样就比较好解释:

我们先要表示正则表达式里面的斜杠“\\”,然后再用字符串表示出来。而这2个斜杠分别需要一个转义符,这样就成了4个斜杠在正则表达式里面表示一个斜杠。

 将字符串中的两个反斜杠转化为四个  str.replace(/\\/g, '\\\\');
 反之                          str.replace(/\\\\/g, '\\');

正则的使用

1、匹配除了数字,字母,中文之外的特殊字符

value.match('^[a-zA-Z0-9_\u4e00-\u9fa5]+$')

2、匹配键盘上可见的非数字和字母的符号

var str= /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]/im; 
                if (str.test(this.value)) {
                    uni.showToast({
                        title: '昵称不能包含特殊字符',
                        icon: 'none',
                        duration: 1000
                    });
                    return false;
                }


原文链接:https://blog.csdn.net/quhongqiang/article/details/117122293

正则匹配总结大全:

正则表达式匹配各种特殊字符_今昔在的博客-CSDN博客_特殊字符正则表达式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值