有没有什么方法可以限制用户输入错误的序列,我的意思是,用户被允许输入前两个字符作为字母,接下来的两个是数字,接下来的两个是字符,然后剩下的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
1条答案
按热度按时间r6hnlfcb1#
我认为遵循regex应该满足您的需要