regex 限制用户在输入类型中键入数字或字母

wpcxdonn  于 2023-04-22  发布在  其他
关注(0)|答案(1)|浏览(111)

有没有什么方法可以限制用户输入错误的序列,我的意思是,用户被允许输入前两个字符作为字母,接下来的两个是数字,接下来的两个是字符,然后剩下的4个是数字。基本上我想对字符的顺序施加限制。印度车辆登记号码的格式不应该被错误的输入所改变。样本输出应为

*HR 23 DU 2323

vehicleNumberFormat() {
    const { value } = this.myForm.get('vehicleNumber');
    console.log('value', value);

    const regex = /^(\w{0,2})(\w{0,2})(\w{0,2})(\w{0,4})$/g
    // const onlyNumbers = value.replace(/[^\d]/g, '')
    const typedValue = value.replace(/[^\w]/g, '')

    const formatedVehicleNumber = typedValue.replace(regex, (regex, $1, $2, $3, $4) =>
      [$1, $2, $3, $4].filter(group => !!group).join(' ')
    )

    console.log('formatedVehicleNumber-->', formatedVehicleNumber.toUpperCase())
    this.myForm.controls['vehicleNumber']?.setValue(formatedVehicleNumber.toUpperCase());
    
    return formatedVehicleNumber;
  }

代码库stackblitz

r6hnlfcb

r6hnlfcb1#

我认为遵循regex应该满足您的需要

^([a-zA-Z]{2})\s+(\d{2})\s+([a-zA-Z]{2})\s+(\d{4})$

相关问题