【发布时间】:2020-12-30 13:26:42
【问题描述】:
有没有办法限制用户输入错误的序列,我的意思是允许用户只输入前两个字符作为字母,然后输入接下来的两个作为数字,接下来的两个作为字符,然后剩下的 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, '')
console.log('typedValue->', typedValue)
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
【问题讨论】:
-
我相信应该是
/^([a-z]{2})(\d{2})([a-z]{2})(\d{2})$/gi -
我猜你想要一些与 stackoverflow.com/a/26202266/2398020 相关的东西来处理输入表单?
-
@MingweiSamuel 不行,我试过了。感谢您的回复:-)
标签: javascript regex angular typescript angular9