Javascript 如何为此条件编写正则表达式
我必须验证以这种格式提供的一些车辆编号Javascript 如何为此条件编写正则表达式,javascript,regex,match,Javascript,Regex,Match,我必须验证以这种格式提供的一些车辆编号 XY-01-AA-1234 XY是两个字母 01是两位数字 AA是字符串中可能存在或不存在的一个或两个字母 1234是一个介于1到9999之间的数字 如果AA不存在,则字符串中不应出现以下hypen 我试过这样做: “[A-Z]{2}-[0-9]{2}-[A-Z-]{0,2}[0-9]{1,4}” 但它接受此格式的车辆编号XY-01--1234 也就是说,可接受的车辆编号格式为XY-01-1234或XY-01-A-1234或XY-01-AA-1234,您应
XY-01-AA-1234
XY-01--1234
也就是说,可接受的车辆编号格式为
XY-01-1234
或XY-01-A-1234
或XY-01-AA-1234
,您应该使用此正则表达式:
/^[A-Z]{2}-[0-9]{2}-(?:[A-Z]{1,2}-)?[0-9]{1,4}$/
(?:[A-Z]{1,2}-?
模式使1或2个大写字母后跟连字符可选
要在功能中使用它,请执行以下操作:
function check_vehicle_no(str, expp) {
return str.match(expp);
}
然后称之为:
var re = /^[A-Z]{2}-[0-9]{2}-(?:[A-Z]{1,2}-)?[0-9]{1,4}$/;
check_vehicle_no(reg_no, re);
请注意,对于正则表达式文字字符串,使用了/…/
而不是'.'
PS:如果您只想验证输入,最好调用
regex.test
。根据您的条件
[A-Z]{2}-[0-9]{2}-([A-Z-]{0,2}.-)?[0-9]{1,4}
这可以在检查车辆号码时实现这一技巧
[A-Z]{2}-[0-9]{2}-([A-Z-]{0,2}.-)?[0-9]{1,4}