常用输入框验证(使用正则匹配)

  • 使用方法:

使用string.match(reg)匹配到不符合规则的值会返回会NULL

// 初始化表单数据
    this.mainForm = this.fb.group({
      id: [null, [Validators.required,this.contentValidators(/^[a-zA-Z0-9_]{1,}$/)]]
    });
/**
   * 输入字符内容检验
   */
  private contentValidators(reg: RegExp) {
    const contentValidator = (control: FormControl): { [s: string]: boolean } => {
      if (control.value && !control.value.match(reg)) {
        return {matchErr: true, error: true};
      } else {
        return {};
      }
    };
    return contentValidator;
  }
  • 正则匹配规则

1.仅支持字母数字下划线

/^[a-zA-Z0-9_]{1,}$/

2.正整数

/^[1-9]\d*$/

3.输入的字母数字长度限制在 6-7

/^[A-Za-z0-9]{6,7}$/

4.大于等于0, 小于等于150, 支持小数位出现5, 如145.5

/^150$|^(?:\d|[1-9]\d|1[0-4]\d)(?:.5)?$/

5.24小时制时间(HH:mm:ss)

/^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$/

6.12小时制时间(hh:mm:ss)

/^(?:1[0-2]|0?[1-9]):[0-5]\d:[0-5]\d$/

7.数字/货币金额(支持负数、千分位分隔符)

/(?:^[-]?[1-9]\d{0,2}(?:$|(?:,\d{3})*(?:$|(\.\d{1,2}$))))|(?:(?:^[0](\.\d{1,2})?)|(?:^[-][0]\.\d{1,2}))$/

不支持千分位分隔符

/(?:^[1-9]([0-9]+)?(?:\.[0-9]{1,2})?$)|(?:^(?:0){1}$)|(?:^[0-9]\.[0-9](?:[0-9])?$)/

8.中国手机号

/^(?:(?:\+|00)86)?1\d{10}$/

9.日期

/^\d{4}(-)(1[0-2]|0?\d)\1([0-2]\d|\d|30|31)$/

10.邮箱地址(email)

/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/

11.密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符

/^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值