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

Javascript 限制用户在输入类型中键入数字或字母,javascript,regex,angular,typescript,angular9,Javascript,Regex,Angular,Typescript,Angular9,有没有办法限制用户键入错误的序列,我的意思是,用户可以只键入前两个字符作为字母,然后键入下两个字符作为数字,然后键入下两个字符作为字符,然后键入其余4个字符作为数字。基本上我想对角色的顺序施加限制。印度车辆注册号的格式不应更改为错误条目。 样本输出应为 HR 23 DU 2323 VehicleNumber格式(){ const{value}=this.myForm.get('vehicleNumber'); console.log('value',value); 常量正则表达式=/^(\w{0

有没有办法限制用户键入错误的序列,我的意思是,用户可以只键入前两个字符作为字母,然后键入下两个字符作为数字,然后键入下两个字符作为字符,然后键入其余4个字符作为数字。基本上我想对角色的顺序施加限制。印度车辆注册号的格式不应更改为错误条目。 样本输出应为

HR 23 DU 2323

VehicleNumber格式(){
const{value}=this.myForm.get('vehicleNumber');
console.log('value',value);
常量正则表达式=/^(\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',)
console.log('typedValue->',typedValue)
const FormattedVehicleNumber=typedValue.replace(正则表达式,(正则表达式,$1,$2,$3,$4)=>
[$1,$2,$3,$4]。筛选(组=>!!组)。加入(“”)
)
console.log('FormattedVehicleNumber-->',FormattedVehicleNumber.toUpperCase())
this.myForm.controls['vehicleNumber'].setValue(FormattedVehicleNumber.toUpperCase());
返回格式化的车辆编号;
}

这里的代码库

我认为下面的正则表达式应该满足您的需要

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

我认为下面的正则表达式应该满足您的需要

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

应该是
/^([a-z]{2})(\d{2})([a-z]{2})(\d{2})$/gi
我相信,我猜你想要一些与此相关的东西来处理表单中的键入?@MingweiSamuel它不起作用,我已经尝试过了。感谢您的回复:-)应该是
/^([a-z]{2})(\d{2})([a-z]{2})(\d{2})$/gi
我相信,我想您想要一些与此相关的东西来处理表单中的键入?@MingweiSamuel它不起作用,我已经尝试过了。感谢您的回复:-)